In a heavy-bottom pot, melt the butter on medium heat (med-low if using onion)
Lower the heat, cook the optional onions for 5 minutes, or until soft.
Raise the temperature to medium, cook the garlic until fragrant, about 1 minute.
Add the asparagus, and salt & pepper. Cook until golden brown, approx 5 minutes.
Add the broth, simmer while covered until asparagus is very tender, but still green, approx 10-15 minutes.
Set the heat to low.
If you have an immersion blender, blend everything until smooth. Otherwise, remove from heat, transfer to a large bowl, and blend 1 cup at a time - be careful about blending hot liquids. Return everything to the pot.
Add 1/2 cup of cream, and let it warm.
In a separate pot, boil the asparagus tips in 1 cup of water with 1/4 tsp salt until tender, approx 3-4 minutes.