Melt unsalted butter in a large pot over medium heat.
Add the chopped onion and minced garlic.
Cook until softened, about 5 minutes.
Add trimmed asparagus to the pot.
Cook for another 4 minutes until slightly tender.
Pour in the chicken broth and bring the mixture to a boil.
Simmer until the asparagus is fully tender, about 15 minutes.
Use an immersion blender to blend the soup until smooth.
Alternatively, transfer the soup in batches to a standing blender.
Stir in the heavy cream gently.
Season with salt and black pepper to taste.