In a large pot over low heat, melt the butter. Add the finely chopped shallot and cook for 5 minutes, stirring often, until softened and fragrant. Add the minced garlic and cook for another minute, stirring to prevent burning.
Stir in the diced potato and cook for 2 minutes. This helps the potato absorb some of the buttery, aromatic flavors.
Pour in the vegetable broth and stir. Cover the pot and let it simmer for 15 minutes, or until the potatoes are just tender.
Trim the woody ends from the asparagus and cut into 1-inch pieces. Add them to the pot along with the salt and pepper. Simmer for another 10 minutes, until the asparagus is tender but still bright green.
Carefully remove about 1 cup of vegetable broth from the pot and set aside. Use an immersion blender to puree the soup until completely smooth.
If using a countertop blender, work in batches and return the blended soup to the pot. Add back reserved vegetable broth as needed for your desired consistency.
Add the Parmesan cheese to the soup and stir over low heat for 5 minutes, until melted and incorporated.
Stir in the heavy cream and lemon juice. Heat for 1 minute, then turn off the heat. Taste and adjust seasoning if needed.
Ladle the soup into bowls and garnish with extra asparagus tips, fresh dill, cracked pepper, a swirl of cream, Parmesan shavings, or crunchy croutons. Enjoy!