Creamy and Hearty Ham and Potato Soup

BY Emily Parker December 26, 2025

When the temperatures drop and you need a meal that feels like a warm embrace, few things satisfy quite like a bowl of thick, velvety soup. This classic preparation relies on the natural starches of the potato and a traditional stovetop roux to achieve a rich consistency without needing heavy cream. It is an excellent way to breathe new life into leftover holiday ham, transforming simple pantry staples into a robust meal. This Ham and Potato Soup is designed to be approachable for any home cook while delivering the deep, savory flavors usually reserved for slow-simmered stews.

Whether you are looking for a reliable lunch option or a filling dinner to serve alongside a crusty baguette, this recipe offers a balance of salty ham, tender vegetables, and a smooth dairy base. The beauty of this dish lies in its texture—partially smashed potatoes mingle with intact cubes to create a varied mouthfeel that is both rustic and refined. It is a timeless addition to your kitchen repertoire that focuses on technique and high-quality ingredients to produce a result that far exceeds the sum of its parts.

Table of Contents

Ingredients

  • 3 ½ cups potatoes, peeled and cut into half-inch cubes
  • 3 ¼ cups water
  • ¾ cup cooked ham, diced into bite-sized pieces
  • ⅓ cup celery, finely diced
  • ⅓ cup yellow onion, minced
  • 2 tablespoons chicken bouillon granules
  • 1 teaspoon ground white or black pepper
  • ½ teaspoon sea salt (adjust based on the saltiness of your ham)
  • 5 tablespoons unsalted butter
  • 5 tablespoons all-purpose flour
  • 2 cups whole milk

Instructions

  1. Combine the cubed potatoes, water, diced ham, celery, and onion in a large heavy-bottomed stockpot.
  2. Bring the liquid to a rolling boil over high heat, then immediately reduce to medium to maintain a steady simmer.
  3. Cook the mixture for approximately twelve to fifteen minutes or until the potatoes can be easily pierced with a fork.
  4. Stir in the chicken bouillon, pepper, and salt until fully incorporated.
  5. In a separate small saucepan, melt the butter over medium-low heat.
  6. Whisk the flour into the melted butter and cook for sixty seconds to remove the raw flour taste.
  7. Slowly pour the milk into the flour mixture, whisking constantly until the sauce thickens into a smooth gravy.
  8. Add the thickened milk mixture into the main stockpot with the vegetables and ham.
  9. Stir the soup over low heat for several minutes until the flavors meld and the entire pot is heated through.

Step-by-Step Details

Begin by prepping your vegetables with precision. The potatoes should be uniform in size to ensure they cook at the same rate. As they simmer with the ham and aromatics, the water will begin to cloud with starch—this is a good sign, as it helps build the soup’s body. You will notice the aroma of the onions and celery softening, becoming translucent and sweet. When testing the potatoes, they should be tender but not disintegrating; if they offer no resistance to a knife, they are ready for the seasoning step.

The roux is the most critical phase for achieving the desired silkiness. When you melt the butter and add the flour, look for a “blonde” roux—it should bubble slightly and smell faintly nutty but should not turn brown. As you add the milk, do so in a slow, steady stream. At first, it may look clumpy, but persistent whisking will transform it into a glossy, thick base. This ensures your soup is creamy without being greasy.

Once you combine the two pots, the liquid will transform from a thin broth into a rich, opaque gold. Watch for small bubbles around the edges of the pot, but avoid a hard boil at this stage to prevent the milk from scorching or curdling. The final texture should be thick enough to coat the back of a wooden spoon. If you prefer a more rustic style, use a potato masher to lightly crush a few of the potato cubes directly in the pot before serving.

Pro Tips

  • Choose the Right Potato: For a soup that holds its shape, use Yukon Gold potatoes. They have a naturally buttery flavor and a medium starch content that provides creaminess without falling apart like Russets often do.
  • Layer the Salt: Ham varies significantly in salt content. Always taste your broth after adding the bouillon but before adding the final half teaspoon of salt to ensure the dish isn’t over-seasoned.
  • Roux Temperature: To avoid lumps, try adding cold milk to your hot roux. The temperature differential helps the flour particles separate more easily, resulting in a smoother sauce.
  • Aromatic Boost: If you want a deeper flavor profile, sauté the onions and celery in a tablespoon of butter for three minutes before adding the water and potatoes.
  • White Pepper Secret: Professional chefs often use ground white pepper in potato soup to maintain a clean, white aesthetic while still providing a sharp, earthy bite.
  • Simmer, Don’t Boil: Once the dairy is added, keep the heat on low. High heat can cause the milk proteins to tighten and separate, which ruins the velvety texture.

Variations or Substitutions

  • Cheesy Version: Stir in one cup of sharp shredded cheddar cheese during the final three minutes of cooking until completely melted for a decadent twist.
  • Vegetarian Alternative: Omit the ham and replace the chicken bouillon with vegetable bouillon. Add a drop of liquid smoke to mimic the savory, smoky notes the ham usually provides.
  • Dairy-Free Option: Use an unsweetened cashew milk and a plant-based butter substitute. Use cornstarch mixed with a little cold water as a thickener instead of the flour roux.
  • Added Greens: Stir in two cups of fresh baby spinach or chopped kale just before serving. The residual heat will wilt the greens perfectly without overcooking them.

Serving Suggestions

Serve this soup in deep, warmed bowls to maintain the temperature. A classic pairing is a side of oyster crackers or a thick slice of sourdough bread slathered in salted butter. For a brighter contrast, top each serving with freshly chopped chives or thinly sliced green onions. If you are serving this as a primary dinner course, a light arugula salad with a lemon vinaigrette provides a crisp acidity that cuts through the richness of the creamy potato base.

FAQs

Can I use frozen potatoes for this recipe?

Yes, you can use frozen diced potatoes, though the texture may be slightly softer. Reduce the initial boiling time to about eight minutes, as frozen potatoes are often blanched before packaging.

How do I make the soup even thicker?

If the soup is too thin for your preference, take a cup of the potatoes and liquid out, blend it until smooth, and stir it back into the pot. Alternatively, you can simmer the soup for an additional ten minutes uncovered to allow some moisture to evaporate.

Is it possible to make this in a slow cooker?

You can cook the potatoes, ham, and vegetables in a slow cooker on low for six hours. However, you must still prepare the butter, flour, and milk roux on the stove at the very end and stir it in for the last thirty minutes to get the correct consistency.

How long will leftovers stay fresh?

This soup keeps well in the refrigerator for up to four days. When reheating, you may need to add a splash of milk or water, as the potatoes will continue to absorb liquid as they sit, thickening the soup significantly.

Nutrition Information

NutrientAmount per Serving
Calories236 kcal
Protein8 g
Carbs30 g
Fat10 g
Fiber3 g
Sugar4 g
Sodium850 mg

Disclaimer

Nutrition information is an estimate and may vary based on preparation and ingredients used.

Print

Creamy and Hearty Ham and Potato Soup

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

This hearty Ham and Potato Soup is a velvety stovetop classic. Using a traditional roux for thickness, it transforms simple potatoes and savory ham into the ultimate warming meal.

  • Author: Emily Parker
  • Prep Time: 20 mins
  • Cook Time: 20 mins
  • Total Time: 40 mins
  • Yield: 8 servings 1x
  • Category: Soup
  • Method: Stovetop
  • Cuisine: American

Ingredients

Scale

3 ½ cups potatoes, peeled and diced

3 ¼ cups water

¾ cup cooked ham, diced

⅓ cup celery, finely diced

⅓ cup yellow onion, minced

2 tablespoons chicken bouillon granules

1 teaspoon ground white or black pepper

½ teaspoon sea salt

5 tablespoons unsalted butter

5 tablespoons all-purpose flour

2 cups whole milk

Instructions

1. Combine potatoes, water, ham, celery, and onion in a stockpot and bring to a boil.

2. Simmer over medium heat until potatoes are tender, about 12 to 15 minutes.

3. Stir in chicken bouillon, pepper, and salt.

4. In a separate saucepan, melt butter over medium-low heat.

5. Whisk in flour and cook for one minute to form a blonde roux.

6. Slowly whisk in milk until the sauce is thick and smooth.

7. Pour the milk mixture into the stockpot with the vegetables.

8. Stir over low heat until fully warmed through and thickened.

Notes

Use Yukon Gold potatoes for the best texture.

Add salt slowly as ham and bouillon are already salty.

Do not boil once milk is added to prevent curdling.

Store in the fridge for up to four days.

Nutrition

  • Serving Size: 1 bowl
  • Calories: 236
  • Sugar: 4g
  • Sodium: 850mg
  • Fat: 10g
  • Saturated Fat: 6g
  • Unsaturated Fat: 3g
  • Trans Fat: 0g
  • Carbohydrates: 30g
  • Fiber: 3g
  • Protein: 8g
  • Cholesterol: 30mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

Fan Favorites You Can’t Miss!


Leave a Comment

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star