Melt 2 Tbsp butter in a large pot over medium heat.
Cook mushrooms in the butter. Set them aside.
Melt the remaining 2 Tbsp butter in the pot.
Add onions and cook for about ten minutes, stirring occasionally.
Add garlic and cook for one minute.
Add flour and cook for one minute, stirring constantly.
Stir in the wine or 1/4 cup broth to deglaze the pot.
Add the cooked mushrooms, broth, potatoes, carrots, and parsnips. Bring to a boil.
Add asparagus, herbs, and salt. Simmer for 10 minutes or until all veggies are tender.
Turn off the heat. If desired for garnish, use a slotted spoon to pull out a few asparagus tops and set them aside.
Use an immersion blender to blend the soup until smooth.
Stir in the cream.