01 - Heat olive oil or butter in a large pot over medium heat. Add diced onion and cook for 3–4 minutes until softened. Add garlic and cook for 1 additional minute until fragrant.
02 - Add diced potato and asparagus pieces to the pot, reserving a few asparagus tips for garnish if desired. Sauté for 3–4 minutes to develop flavor.
03 - Pour in vegetable broth and bring to a boil. Reduce heat to a simmer, cover, and cook for 15 minutes until vegetables are completely tender.
04 - Remove pot from heat. Use an immersion blender to purée the soup until completely smooth, or transfer in batches to a countertop blender.
05 - Stir in milk, heavy cream, dill, lemon zest, and 2 tbsp lemon juice. Season generously with salt and black pepper. Gently reheat if needed without bringing to a boil.
06 - Taste the soup and adjust seasoning or add more lemon juice as desired to achieve the right balance of brightness.
07 - Ladle soup into bowls and garnish with reserved asparagus tips, extra fresh dill, and a swirl of cream if desired.