Trim the tough ends from the asparagus and cut stalks into pieces approximately 1 inch long. Set aside.
Melt butter in a medium sauce pan over medium high heat. Add diced onion and cook until soft, about 3-5 minutes.
Add asparagus pieces, salt and pepper and cook over medium high heat for 5 minutes.
Add broth, bring to a simmer and continue simmering 15-20 minutes or until asparagus are completely tender.
Puree soup with an immersion blender, alternatively you can puree in a blender or Cuisinart. Return soup to sauce pan if necessary, and over low heat whisk in yogurt until fully incorporated. Add salt and pepper to taste.