Wash the asparagus under cold water.
Snap off the woody ends completely.
Cut stalks into 1-inch pieces.
Keep the tips separate for garnish.
This step takes about 10 minutes.
Melt butter in your large pot.
Add chopped onion and cook until soft.
This takes about 5 minutes on medium heat.
Add minced garlic and cook 1 minute more.
Stir constantly so nothing burns.
Sprinkle flour over the onion mixture.
Stir well for 2 minutes continuously.
This creates a roux for thickness.
Pour in chicken broth slowly while stirring.
Bring everything to a gentle boil.
Add your cut asparagus to the pot.
Reduce heat to medium-low immediately.
Let it simmer for 15-20 minutes.
The asparagus should be very tender.
Test with a fork to check doneness.
Remove pot from heat and cool slightly.
Use your blender to puree the soup.
Work in batches if using regular blender.
An immersion blender makes this step easier.
Blend until completely smooth and creamy.
Return soup to the pot if needed.
Stir in heavy cream and mix well.
Add salt, pepper, and lemon juice.
Taste and adjust seasoning as needed.
Heat gently but don't let it boil.