Pin it There's something about the smell of ham and white beans simmering together that instantly fills a kitchen with warmth, especially on those gray afternoons when you need comfort more than anything else. A neighbor once told me this was her go-to soup whenever her family gathered unexpectedly, and I understood why the first time I made it—it comes together faster than you'd think, yet tastes like it's been simmering all day. The creaminess catches you off guard, and the fresh herbs scattered on top feel like a little gift to yourself.
I made this for my sister during her first winter in a new apartment, and she sat at my kitchen counter with a spoon while it was still bubbling, saying it tasted like someone actually cared about her breakfast plans that morning. That moment taught me that food isn't really about perfection—it's about showing up for people with something warm when they need it most.
Ingredients
- Cooked ham, diced (2 cups): Use quality ham if you can—the flavor carries the whole soup, and those little salty pockets make each spoonful interesting.
- Yellow onion, finely chopped (1 medium): This is your base, and chopping it fine helps it dissolve into the broth and sweeten everything.
- Carrots, peeled and diced (2 medium): They soften beautifully and add natural sweetness that balances the ham's saltiness.
- Celery stalks, diced (2): Part of the classic trio, and don't skip it—celery brings an herbal depth that makes people wonder what your secret is.
- Garlic cloves, minced (3): Add this after the soffritto base is ready so it doesn't burn and turn bitter on you.
- Yukon Gold potatoes, peeled and diced (2 cups): These waxy potatoes hold their shape instead of falling apart, and they're creamy without being mushy.
- White beans, drained and rinsed (2 cans, 15 oz each): Cannellini beans are classic here, but Great Northern works too—rinsing them removes excess starch that would cloud your broth.
- Heavy cream (1 cup): This is what transforms the soup from simple to luxurious, but don't add it early or it might break.
- Low-sodium chicken broth (4 cups): Low-sodium lets you control the salt level yourself, and the broth becomes this gentle backdrop for the ham.
- Water (1 cup): This rounds out the liquid and keeps the broth from being too intense.
- Fresh parsley, chopped (2 tbsp): Add this at the end to keep its color and fresh bite—cooked parsley just fades away.
- Fresh thyme leaves (1 tbsp, or 1 tsp dried): Thyme has this subtle earthy quality that makes white beans sing.
- Bay leaves (2): They infuse the broth quietly, but remember to fish them out before serving or you'll have an awkward moment with a guest.
- Dried oregano (1/2 tsp): Just enough to add warmth without making it taste like something else entirely.
- Black pepper, freshly ground (1/2 tsp): Fresh pepper tastes cleaner and brighter than the pre-ground stuff.
- Salt (1/2 tsp, adjust to taste): The ham brings its own saltiness, so go easy at first and taste as you go.
Tired of Takeout? 🥡
Get 10 meals you can make faster than delivery arrives. Seriously.
One email. No spam. Unsubscribe anytime.
Instructions
- Build your base:
- Heat oil in a large pot over medium heat and add the onion, carrots, and celery—you're listening for that gentle sizzle and watching for the onion to turn translucent and soft, which takes about five minutes. This is the foundation, and it's worth taking your time here.
- Wake up the garlic:
- Add the minced garlic and stir constantly for just one minute—you want it fragrant but not browned, or it'll turn bitter and ruin the whole thing. You'll smell when it's right.
- Add the ham and potatoes:
- Stir in the diced ham and potatoes, letting them coat in the oil and get to know the aromatics already in the pot. This takes maybe a minute and helps everything cook evenly.
- Build the soup:
- Pour in the drained white beans, chicken broth, water, thyme, bay leaves, oregano, salt, and pepper—stir it all together and watch the liquid rise above the solids. Everything's about to come alive.
- Simmer gently:
- Bring it to a boil, then lower the heat, cover the pot, and let it bubble softly for 25 to 30 minutes until the potatoes are fork-tender and you can smell all the herbs mingling together. The wait is worth it.
- Thicken wisely:
- Remove the bay leaves, then use a potato masher or immersion blender to break up some of the beans and potatoes right in the pot—you're creating creaminess without adding more cream, which is the secret. Leave plenty of whole beans so you still have texture.
- Finish with cream and herbs:
- Stir in the heavy cream and fresh parsley, then simmer uncovered for five more minutes without boiling, tasting as you go and adjusting salt if needed. The soup should taste balanced—rich but not overwhelming.
- Serve with intention:
- Ladle into bowls, top with extra parsley and a crack of fresh pepper, and hand them to people while they're still steaming. This is the moment when cooking becomes an act of kindness.
Pin it One Tuesday I made this soup while on a video call with my mom, and she could tell from the background sounds and smells exactly what I was making before I said a word. She laughed and told me her mother used to make something similar, which meant I'd somehow inherited a recipe I never knew about—that's when I realized this soup carries its own kind of memory forward.
Making It Your Own
This soup is forgiving in the best way—you can swap the ham for smoked turkey or crispy bacon if that's what calls to you, or even leave it out if you're feeding vegetarians and use vegetable broth instead. Half-and-half lightens it if heavy cream feels too rich, and coconut milk takes it somewhere different entirely without losing its soul. I've also added a handful of baby spinach at the very end, stirring it in right before serving, and it gives the whole thing a freshness that catches people off guard.
Serving and Pairing
This soup doesn't ask for much—crusty bread or cornbread is all you really need, something to soak up the last spoonful from the bowl. A simple green salad alongside keeps it balanced, and if you're feeling generous, a glass of something crisp and dry next to it turns an ordinary Tuesday into something that feels intentional.
Storage and Make-Ahead Notes
The soup keeps beautifully in the refrigerator for up to four days, and it actually tastes better the next day when all the flavors have gotten to know each other properly. You can freeze it for up to three months, though I'd hold off on the cream and stir it in when you reheat, just to be safe.
- Make it ahead but add the cream only when you're ready to serve, which keeps everything fresher and less likely to separate.
- If the soup thickens too much while sitting in the fridge, loosen it with a splash of broth or water when you reheat.
- Double the batch without hesitation—this is one of those recipes that tastes even better when you have leftovers waiting for you.
Pin it This soup has become my default answer when someone asks what I'm making for dinner—it's reliable, generous, and tastes like someone paid attention. That's really all we're looking for in the kitchen, isn't it?
Recipe FAQ
- → Can I use smoked turkey instead of ham?
Yes, smoked turkey works well as a flavorful alternative to ham, maintaining the dish’s smoky depth.
- → What type of beans are recommended?
White beans like cannellini or Great Northern provide a creamy texture and mild taste that complement the dish.
- → How do I achieve the creamy texture?
Mashing some of the white beans and potatoes in the pot helps thicken the soup, while heavy cream adds richness.
- → Can I prepare this soup dairy-free?
Substitute heavy cream with coconut milk or half-and-half alternatives to keep it dairy-free while preserving creaminess.
- → What herbs enhance the flavor best?
Fresh parsley, thyme, bay leaves, and a touch of oregano create a balanced, aromatic profile for this dish.