Sauté the Aromatics. In a large pot or Dutch oven, heat olive oil or butter over medium heat. Add chopped onion and garlic, and sauté for 2-3 minutes until softened and fragrant.
Cook the Asparagus. Trim the woody ends off the asparagus and chop into small pieces. Add the asparagus to the pot and cook for 3-4 minutes, stirring occasionally.
Simmer the Soup. Pour in the vegetable or chicken broth and bring to a gentle simmer. Let the soup cook for 10-15 minutes, or until the asparagus is tender.
Blend Until Smooth. Using an immersion blender, blend the soup until completely smooth. Alternatively, transfer to a blender and blend in batches, then return to the pot.
Add Cream and Seasoning. Stir in the heavy cream (or coconut milk) and season with salt and black pepper to taste. Let it warm through for 2 minutes.
Garnish and Serve. Ladle the soup into bowls and garnish with Parmesan cheese, fresh herbs, or a drizzle of olive oil. Serve warm and enjoy!