Heat butter or oil in a saucepan over medium heat until shimmering.
Add chopped onion and cook gently until soft and translucent, about 4–5 minutes.
Stir in minced garlic and sauté for 30 seconds until fragrant.
Add diced potato and asparagus stalks (reserve the tips) and stir to coat.
Pour in the stock so vegetables are just covered and bring to a simmer.
Cook until potato is tender and asparagus stalks are soft, about 12–15 minutes.
Blanch reserved asparagus tips in boiling water 1–2 minutes, then shock in ice water and set aside.
Use an immersion blender (or transfer to a blender in batches) and purée the soup until completely smooth.
Return to low heat; stir in cream or yogurt if using and warm through without boiling.
Season with salt, pepper, and lemon juice to taste; serve topped with blanched tips, chopped chives, and a drizzle of olive oil.