Cut asparagus into half-inch pieces and put aside. In a heavy pot over medium-low heat, melt butter. Add garlic and onion, cook until soft, stirring often, about 10 minutes. Add asparagus, salt and pepper to taste, and cook over medium heat, about 5 minutes. Add broth, cover, and simmer until asparagus is tender, about 15 minutes. With an immersion or standard blender, purée in batches until smooth. Return to pot and stir in cream over low heat. Transfer to bowl, season with salt and pepper, sprinkle with herbs, and serve, preferably with a crunchy piece of baguette.