In a large pot, melt butter over medium heat. Add chopped onion and garlic and cook until softened. Add chopped asparagus and chicken broth. Bring to a boil, then reduce heat and simmer for 15-20 minutes, until the asparagus is tender. Use an immersion blender to puree the soup until smooth. Stir in heavy cream and season with salt and pepper. Serve hot.