Melt butter in a Dutch oven over medium-high heat; add onion and garlic, and sauté until tender. Add asparagus and next 4 ingredients.
Bring to a boil, stirring often. Reduce heat, and simmer, stirring often, 10 minutes. Cool slightly.
Process half of mixture in a blender or food processor until smooth, stopping to scrape down sides. Transfer to another container, and repeat procedure with remaining mixture.
Return asparagus mixture to Dutch oven, and stir in milk. Cook just until soup is heated. (Do not boil.) Serve hot or cold with desired toppings.