In a large pot or Dutch oven, sauté the onions, celery, and garlic in a small amount of butter or oil until softened.
Add the potatoes and broth to the pot. Bring the mixture to a boil, then reduce the heat and let it simmer for 15-20 minutes, or until the potatoes are tender.
Use an immersion blender or transfer the soup to a blender to puree the mixture until smooth.
Stir in the cream and season with salt and pepper to taste.
Heat the soup through and serve with desired toppings.