A thick, one-pot comfort soup that combines starchy russet potatoes with tender broccoli and sharp cheddar melted in off the heat for a smooth, velvety finish.
Melt the butter in a Dutch oven over medium heat, then cook the diced onion for 4 to 5 minutes until soft and translucent. Add the garlic and cook 30 seconds until fragrant.
Sprinkle the flour over the onion and garlic and stir constantly for 1 to 2 minutes to cook off the raw flour taste.
Slowly whisk in the chicken broth until smooth, then whisk in the milk and heavy cream. Bring to a gentle simmer.
Add the diced potatoes, cover, and simmer for about 15 minutes until fork-tender and the smallest pieces begin to break down.
Stir in the broccoli and simmer uncovered for 5 to 7 minutes until bright green and just tender.
Stir in the smoked paprika, nutmeg, Dijon mustard, salt, and pepper. Taste and adjust the salt before adding cheese.
For a creamier texture, pulse an immersion blender a few times, blending only about a third of the soup and leaving plenty of chunks. Skip for a fully chunky soup.
Turn off the heat and let the soup stop bubbling, then stir in the grated cheddar a handful at a time until fully melted and smooth.
Ladle into bowls while hot and top with extra cheddar or cracked pepper. Serve with crusty bread.
Notes
Grate the cheese fresh from a block; pre-shredded cheese is coated in anti-caking starch that makes the soup grainy.
Always add the cheese off the heat. If the pot is still boiling, the cheddar will seize into stringy clumps.
Cut the potatoes into even 1/2-inch pieces so they cook at the same rate.
Use low-sodium broth so you can control the salt, since the cheese adds saltiness at the end.
For a vegetarian version, swap the chicken broth for vegetable broth with no other changes.
Make it gluten-free by replacing the flour with 1 tablespoon of cornstarch whisked into the milk.
Add 2 diced carrots and a rib of celery with the onion for more color and sweetness.
If the soup gets too thick as it sits, whisk in a splash of warm broth or milk to loosen it.
Store leftovers in an airtight container in the fridge for up to 3 days. Freezing is not recommended because the dairy separates.
Reheat gently over low heat, stirring often, and never let it come to a hard boil.