Remove the woody ends of the asparagus stalks. Cut the tips off the ends of the stalks and reserve. Chop the rest of the asparagus into pieces and reserve.
In a large pot with a heavy lid over medium-high heat, add the oil and the onions, celery, and bell pepper. Sauté until the onions turn translucent, about 5 minutes. Add the garlic, onion tops, oregano, and thyme and sauté for another 3 minutes.
Add the asparagus pieces and chicken stock, and bring to a boil. Reduce to a simmer and cover cooking for 45 minutes or until the asparagus pieces are tender.
Using an immersion blender (or blender), pureé the soup until smooth. Add more stock (or water) if too thick. Season to taste with salt and pepper.
Add the asparagus tips to the mixture and bring to a simmer. Cook for another 10 minutes or until the asparagus tips are tender.
Ladle into bowls and top with a spoonful of sour cream.
Notes
No need to peel the asparagus since the blender will pulverize everything. I like chicken stock in this, but feel free to use vegetable stock for a vegan version. Some folks add butter at the end of cooking for added richness, but i find that this recipe doesn't need it. I would not advise adding hot sauce or excessive spice that will mask the freshness of the asparagus; this is a delicate dish.
Recipe by Acadiana Table at https://acadianatable.com/2019/03/25/asparagus-soup/