This ham and potato soup is a thick, creamy, one-pot comfort classic made with tender Russet potatoes, savory diced ham, and a rich, velvety broth built on a simple roux. It comes together in under an hour, makes excellent use of leftover holiday ham, and tastes even better the next day — making it one of the most rewarding soups you can add to your weeknight rotation.
Large Dutch oven or heavy-bottomed pot - At least 5 to 6 quart capacity
Wooden spoon or silicone spatula - For stirring
Chef's knife and cutting board - For dicing vegetables and ham
Vegetable peeler - For peeling potatoes and carrots
Ladle - For serving
Measuring cups and spoons
Potato masher - (optional) For mashing some potatoes to thicken the soup
Immersion blender - (optional) For a partially blended, creamier texture
Ingredients
2tablespoonsunsalted butter - 30g
1mediumyellow onion - diced, about 1 cup or 150g
3clovesgarlic - minced
3stalkscelery - diced, about ¾ cup or 75g
3mediumcarrots - peeled and diced, about 1 cup or 130g
2lbsRusset potatoes - 900g, peeled and cut into ½-inch cubes
2cupscooked ham - 300g, diced into ½-inch cubes
4cupslow-sodium chicken broth - 950ml
2cupswhole milk - 475ml
¼cupall-purpose flour - 30g
1teaspoongarlic powder
1teaspoononion powder
½teaspoonsmoked paprika
½teaspoondried thyme
salt and black pepper - to taste
Optional Add-ins
1cupsharp cheddar cheese - 113g, shredded; optional but highly recommended
For Garnish
sour cream - for serving
green onions - sliced, for serving
shredded cheddar cheese - extra, for serving
Instructions
Peel and cube potatoes into ½-inch pieces and submerge in cold water. Dice the onion, celery, and carrots; mince the garlic; and cube the ham into ½-inch pieces.
Melt butter in a large Dutch oven over medium heat, then add the onion, celery, and carrots. Cook for 4 to 5 minutes until softened, then add the minced garlic and stir for 30 to 60 seconds until fragrant.
Sprinkle the flour over the vegetables and stir constantly for 1 to 2 minutes until the flour coats everything and cooks out its raw taste.
Slowly pour in the chicken broth, about ½ cup at a time, stirring constantly to prevent lumps. Stir in the garlic powder, onion powder, smoked paprika, dried thyme, and a pinch of salt and pepper.
Drain the potatoes and add them to the pot along with the diced ham. Increase heat to medium-high and bring the soup to a gentle boil, stirring occasionally.
Reduce heat to medium-low and simmer uncovered for 15 to 20 minutes, stirring every few minutes, until the potatoes are completely fork-tender. Optionally, mash about a quarter of the potatoes in the pot to thicken the broth.
Reduce heat to low, pour in the milk while stirring, and warm for 3 to 5 minutes. If using cheddar, add it in batches, stirring after each addition until fully melted.
Taste and adjust seasoning with additional salt, pepper, or paprika as needed. Ladle into bowls and top with sour cream, green onions, and extra shredded cheddar.
Notes
Use Russet potatoes for the best natural thickening — their high starch content gives the broth a creamy, velvety texture without extra thickeners.
Don't skip the roux step. Cooking the flour into the butter and vegetables for a full 1 to 2 minutes is what makes the soup thick and smooth.
Always reduce heat to low before adding milk to prevent curdling or separation.
If you have a ham bone, simmer it in the pot with the broth for dramatically deeper flavor — remove before serving.
Shred cheese from a block rather than using pre-shredded bags. Block cheese melts smoothly without the anti-caking agents that cause graininess.
Cut all potatoes to a uniform ½-inch size so they cook evenly — no mushy pieces alongside undercooked ones.
The soup thickens considerably in the fridge. When reheating, stir in a splash of broth or milk to loosen it to your preferred consistency.
To freeze, swap Russet potatoes for Yukon Gold — they hold their texture better through the freeze-thaw cycle. Freeze in airtight containers for up to 3 months.
For a slow cooker version, sauté aromatics first, then add everything except milk and cheese to the slow cooker. Cook on low 6 to 8 hours or high 3 to 4 hours, then stir in milk and cheese during the last 30 minutes.
If the soup turns out too thin, stir together 2 tablespoons cornstarch with ¼ cup cold water and slowly mix it into the simmering soup, cooking for 2 to 3 minutes until thickened.