Melt the butter in a pan big enough to cook the soup. Saute the onions for a few minutes, until transparent but not brown.
Meanwhile, slice the asparagus into thin slices. Now add the sliced asparagus pieces to the onions and continue to saute (over medium to medium-high heat) for 15 minutes, until most of the moisture has steamed out of the asparagus and the mixture has just barely started to brown.
Add the flour to the onion/asparagus mixture and stir well to coat each piece with some flour. Cook for 2 or 3 more minutes over medium-high heat. Dump the boiling water into the asparagus mixture. Add the (optional) chicken broth and the salt. Simmer for 1 hour.
Strain out the cooked asparagus, leaving behind a thin yellow-green soup. Thicken the soup with the 2 egg yolks. Add the milk and reheat the soup to serving temperature. Add salt and fresh-ground white pepper to taste. Serve immediately.
NOTES: A light and simple asparagus soup -- Every summer, it seems, the grocery stores are glutted with cheap asparagus. Most of the classical recipes for asparagus soup produce a hearty winter-style soup. Here's a simple recipe for a delicious, light, thin soup that is more in keeping with the time of the year that the glut occurs. You can leave out the chicken broth to make it a meatless soup, but it does require egg yolks. Serves 4-6.
* The slicing disk on a food processor does an excellent job of slicing the asparagus for this recipe. You can use a food mill, a china cap, or an ordinary sieve to strain the cooked asparagus out of the broth.
* Don't try to make this soup as a low-salt soup by leaving out the salt. It will taste like dishwater if you cook the asparagus for an hour without salt. Don't try to skimp on time by leaving the cooked asparagus in the broth unstrained. It will ruin the texture.