Prepare the Ingredients
Peel and dice the potatoes into small cubes for even cooking. Finely chop the onion and mince the garlic.
Cook the Base
In a large pot or Dutch oven, melt the butter over medium heat. Add the onion and cook until softened, about 3-4 minutes. Stir in the garlic and cook for another minute.
Sprinkle the flour over the onions and garlic, stirring to form a roux. Cook for 1-2 minutes, then gradually add the broth while whisking to avoid lumps.
Cook the Potatoes
Add the diced potatoes to the pot and bring the mixture to a boil. Reduce the heat to a simmer, cover, and cook for 15-20 minutes, or until the potatoes are tender.
Blend and Add Cream
Use a potato masher or immersion blender to achieve your desired consistency. Leave some chunks for texture, or blend completely for a silky finish.
Stir in the heavy cream, salt, pepper, and smoked paprika. Simmer for an additional 5 minutes to let the flavors meld.
Serve and Garnish
Ladle the soup into bowls and top with shredded cheese, chives, or other desired garnishes.