Gather all your ingredients and prep the vegetables: trim the woody ends from the asparagus and chop into 2-inch pieces; peel and dice the potatoes; finely chop the onion and mince the garlic.
Heat a splash of olive oil in a large pot over medium heat. Add the chopped onion and cook, stirring occasionally, until translucent and fragrant, about 5 minutes. The kitchen should fill with a sweet aroma as the onions soften.
Add the diced potatoes to the pot and pour in the vegetable broth. Bring to a gentle simmer and cook for 10 minutes, or until the potatoes begin to soften.
Stir in the asparagus pieces and continue simmering until both the potatoes and asparagus are tender, about 8-10 minutes. The asparagus should turn a vibrant green and be just tender when pierced with a fork.
Use an immersion blender directly in the pot to puree the soup until completely smooth and velvety. Alternatively, carefully transfer the soup in batches to a blender, then return it to the pot.
Stir in the cream or milk for added richness. Warm the soup gently over low heat for a couple of minutes, then squeeze in fresh lemon juice to brighten the flavor. Taste and adjust with salt and pepper as needed.
Pour the hot soup into bowls, garnish with chopped herbs like chives or tarragon, and serve immediately. The soup should be velvety, vibrant green, and fragrant with fresh citrus and herbs.