Heat olive oil in a large pot over medium heat.
Add chopped onions and sauté until translucent.
Stir in minced garlic and cook for another minute.
Add diced potatoes (and optional carrot and celery) to the pot.
Pour in the vegetable or chicken broth, ensuring the vegetables are covered.
Bring to a boil, then reduce heat and simmer for 20 minutes or until potatoes are tender.
Use an immersion blender to puree the soup until smooth.
Stir in heavy cream and season with salt and pepper to taste.
Allow the soup to heat through for an additional 5 minutes.
Serve hot, garnished with chopped parsley.