Finely chop the onion, garlic and celery stalk.
Wash asparagus spears and either snap off wooden ends or peel the ends with a vegetable peeler. Cut the asparagus into 1-2 inch pieces.
Peel potatoes and chop into smaller pieces.
In a large pot, melt oil or butter over medium heat. Add onion and celery and cook until translucent, about 5 minutes.
Add garlic and cook for another minute until fragrant.
Add water and potatoes to pot.
Bring to a boil, then reduce heat and simmer for 5-7 minutes or until potatoes starts to soften.
Add asparagus and simmer on low heat until asparagus is tender, but still nice and green, about 4-5 minutes.
Scoop out about 10 asparagus spear heads to use as garnish and place in small side dish. Once you have blended the soup, you will add them back in.
Add the lemon zest, fresh lemon juice and 2/3 of the fresh dill to the soup pot.
Using a hand-held immersion blender (or transfer to a food processor) puree soup until smooth.
Stir in heavy cream and the rest of the fresh dill and the asparagus heads you scooped out previously. Season with salt and pepper.
Heat through but do not boil.
Serve hot, garnished with a dollop of extra cream or sour cream and extra fresh dill or parsley for garnish.