Prepare the Potatoes:
Peel and dice the potatoes into bite-sized pieces.
Cook the Aromatics:
In a large pot or Dutch oven, melt the butter over medium heat. Add the chopped onion and garlic, sautéing until soft and fragrant.
Make the Roux:
Sprinkle the flour over the onions and garlic, stirring continuously to create a roux. Cook for 1–2 minutes to remove the raw flour taste.
Add Broth:
Slowly whisk in the chicken or vegetable broth, ensuring there are no lumps.
Cook the Potatoes:
Add the diced potatoes and dried thyme. Bring the mixture to a boil, then reduce the heat and simmer until the potatoes are tender (about 15–20 minutes).
Blend for Creaminess:
For a smooth soup, use an immersion blender to blend until creamy. Alternatively, remove half of the soup, blend it in a blender, and return it to the pot. For a chunkier soup, leave the potatoes as is.
Add Cream:
Stir in the milk or heavy cream, letting it heat through without boiling.
Season to Taste:
Add salt and pepper to taste. If using cheese, stir it in until melted and fully incorporated.
Serve:
Ladle the soup into bowls and garnish with chopped parsley or chives.