Step 1: Cook the potatoes
- In a large pot, combine the diced potatoes, chopped onion, garlic, and chicken or vegetable broth.
- Bring to a boil over medium-high heat, then reduce the heat to medium-low. Simmer for 15-20 minutes, or until the potatoes are tender and easily pierced with a fork.
Step 2: Make the roux
- In a small saucepan, melt the butter over medium heat. Stir in the flour and cook for 1-2 minutes, whisking constantly, to form a roux.
- Gradually whisk in the milk, continuing to stir until the mixture thickens slightly. Remove from heat.
Step 3: Blend and thicken the soup
- Use a potato masher to partially mash the cooked potatoes in the pot, leaving some chunks for texture. For a smoother soup, blend a portion of the mixture using an immersion blender or standard blender.
- Stir the roux into the soup, mixing well. Add salt, pepper, and smoked paprika (if using). Cook for another 5-10 minutes, stirring occasionally, until the soup thickens to your desired consistency.
Step 4: Serve
- Ladle the soup into bowls and garnish with your favorite toppings, such as bacon, cheese, green onions, or sour cream. Serve warm with crusty bread or crackers.