Wash the asparagus really well and trim off the tips to about 4 -5 cm long (or 2-2 1/2 inches) and set aside. Then remove about 2 cm (or 1 inch) from the bottom of the stalk. Peel the white bottoms of each stalk up to where the green begins. Cut the stalks into pieces about 1 cm (1/2 inch) long.
In a pot bring 1-1/2 liters of water with 2 tsk salt to a boil add the asparagus stalks and boil gently for 5 minutes. Remove the asparagus stalks. Then toss in the asparagus tips and gently boil for about 4-5 minutes or until they are just cooked. Remove the tips and plunge them into ice water to bring back their color and stop the cooking, when cold, drain and set aside. Keep the cooking water.
In another pot, on a medium heat place all the sliced onions and 2 tbsp of butter and sweat the onions for 10 minutes until they are translucent and soft. Avoid coloring them, you want them to be stay white.
Now add the cooked stalks to the cooked onions and cook for 5 minutes uncovered.
Add the flour and cook for another minute or two. Then add the hot cooking liquid slowly, stirring with a wooden spoon, then the milk. (take care that there is no sand in the bottom of the cooking water).
Simmer this gently for about 15 minutes or until the asparagus are very tender and soft and the the taste of the flour has disappeared.
Remove the soup from the stove and let cool for a little while. Place the soup into the container of your food processor or blender and blend until smooth. Using a food mill or a fine mesh strainer, pass the soup thought it. This will take out any fibers from the asparagus. If doing this by hand be sure to press well with the back of a spoon to get all the flesh pressed through
The soup can be prepared up until this point.
Heat the soup gently, add the nutmeg. Mix the cream and eggs yolks together well, then whisk this into the warm soup a bit at a time to thicken and enrich the soup. With a wooden spoon stir the soup while it is heating, scraping the bottom and sides of the pot to avoid the yolks making the soup stick. Remove from the heat just before the soup comes to the boil to avoid the eggs from scrambling. Egg will scramble if heated above 85 °C (185 °F)
Taste and check for salt and white pepper.
To serve it warm: Put the soup in a pot over a medium heat and warm, whisk in the 2 tbsp of softened butter and heat until it is just hot. Egg will scramble if heated above 85 °C (185 °F). Whisk in the butter pour into soup bowls garnish with 4 or 5 asparagus tips and serve.
To serve it cold: Don't add the final 2 tbsp (or 2 tbls.) of butter. After it is chilled correct for salt as cold soup usually needs a bit more seasoning. You can also add an extra tbsp of cold whipping cream for each bowl of soup you are serving.