Melt the butter in a stock pot along with the oil over medium heat. Cook the onion, celery, garlic and carrot until the onions are translucent (about 10 minutes)
Add the flour and mix in thoroughly
Add the stock, ham and potatoes. Bring to a light boil, reduce and simmer for 10 minutes
Add the asparagus and continue simmering until the potatoes and asparagus are fully cooked, about 20 minutes
Puree the mixture with a hand mixer or blender and then stir in the yogurt