This comforting Indian-inspired dish features tender potato cubes and cauliflower florets simmered in a luxuriously rich, buttery tomato sauce. The aromatic spice blend of cumin, coriander, garam masala, and turmeric creates layers of warm, complex flavors that develop beautifully as the vegetables cook. Heavy cream adds a velvety finish, making this an ideal vegetarian main course that's both satisfying and deeply flavorful.
The first time I made this dish, my tiny apartment smelled so incredible that my neighbor knocked on my door thinking I had ordered takeout from the best Indian place in town. I laughed and invited her in, and we ended up sharing bowls of it while standing in my kitchen. Now it is the recipe I make when I want comfort food that feels like a warm hug.
Last winter my sister came over exhausted from a new job, and I made this without really measuring anything. She took one bite and asked if I could teach her how to cook, which was hilarious because she had always been the better cook growing up. Now she texts me photos every time she makes it, usually with some small variation she discovered.
Ingredients
- 3 medium potatoes: Peeled and cut into 1-inch cubes, they hold their shape beautifully in the sauce
- 1 medium head cauliflower: Cut into florets, soak them in cold water first for extra crispness
- 1 medium yellow onion: Finely chopped, this builds the sweet foundation of the sauce
- 2 cloves garlic: Minced fresh, never jarred
- 1-inch piece fresh ginger: Grated straight into the pan for maximum flavor
- 1 small green chili: Finely chopped, leave seeds in if you love heat
- 2 tablespoons unsalted butter: Use real butter for that authentic richness
- 2 tablespoons vegetable oil: Prevents the butter from burning
- 1 (14 oz) can crushed tomatoes: Good quality tomatoes make all the difference
- 1/2 cup heavy cream: Full fat is essential for the silky texture
- 1/4 cup water: Just enough to help everything steam together
- 1 1/2 teaspoons ground cumin: Earthy and warm
- 1 teaspoon ground coriander: Adds a subtle citrus brightness
- 1 teaspoon garam masala: The essential spice blend that ties everything together
- 1/2 teaspoon turmeric powder: For that gorgeous golden color
- 1/2 teaspoon smoked paprika: Adds a lovely depth
- 1/2 teaspoon chili powder: Adjust based on your spice tolerance
- 1 teaspoon salt: Or more to taste, trust your palate
- 1/2 teaspoon freshly ground black pepper: Grind it right before adding
- 2 tablespoons fresh cilantro: Chopped, for that pop of fresh color and flavor
- Lemon wedges: For squeezing over right before eating
Instructions
- Build your flavor base:
- Heat the butter and oil in a large skillet or Dutch oven over medium heat. Add the chopped onion and sauté until soft and golden, about 5 minutes.
- Wake up the aromatics:
- Stir in the garlic, ginger, and green chili. Cook for 1 minute until fragrant and the raw smell disappears.
- Toast your spices:
- Add cumin, coriander, garam masala, turmeric, paprika, chili powder, salt, and pepper. Toast for 1 minute, stirring constantly so they do not burn.
- Create the sauce:
- Pour in the crushed tomatoes and cook for 5 minutes. Let the sauce thicken slightly and deepen in color.
- Add the vegetables:
- Add the potatoes and cauliflower. Stir well to coat every piece in that spiced sauce.
- Simmer to tenderness:
- Add water, cover, and simmer for 18 to 20 minutes. Stir occasionally and cook until the potatoes pierce easily with a fork.
- Make it creamy:
- Lower the heat and stir in the heavy cream. Simmer uncovered for 5 minutes while the sauce becomes rich and velvety.
- Season perfectly:
- Taste and adjust salt, pepper, or chili heat as needed.
- Finish and serve:
- Garnish with chopped cilantro and serve with lemon wedges, basmati rice, or warm naan bread.
My friend who swore she hated cauliflower tried this at a dinner party and went back for seconds. Later she confessed she had no idea she was eating cauliflower the whole time because the sauce was so good.
Making It Your Own
Swap heavy cream for coconut milk to make it dairy free and add a subtle sweetness. I once added frozen peas during the last five minutes and the pop of color made it feel like a completely new dish. You can also throw in some chickpeas for extra protein.
Serving Ideas
Basmati rice is classic, but I have served this over quinoa for a healthier twist. Warm naan for scooping up every last drop of sauce is basically mandatory. It also works beautifully as a filling for wraps the next day.
Perfecting The Texture
Cut your vegetables into similar sizes so they cook evenly. If the cauliflower is done before the potatoes, remove it temporarily and return it when you add the cream. Do not rush the simmering step.
- Parboil the potatoes for 5 minutes if you are in a hurry
- Use frozen cauliflower if fresh is not available, just thaw first
- Let the dish rest for 10 minutes before serving for the flavors to marry
This recipe has saved more weeknight dinners than I can count. I hope it finds a regular spot in your kitchen rotation too.
Recipe FAQs
- → Can I make this dairy-free?
-
Absolutely. Substitute the butter with plant-based butter or coconut oil, and replace the heavy cream with full-fat coconut cream or cashew cream for the same rich texture.
- → How spicy is this dish?
-
The spice level is medium and adjustable. The chili powder and green chili provide warmth without overwhelming heat. Reduce or omit these ingredients for a milder version, or increase them for more heat.
- → What should I serve with this?
-
Basmati rice is the classic pairing, but warm naan bread, roti, or any flatbread works perfectly for soaking up the creamy sauce. It also complements other Indian dishes like dal or chana masala.
- → Can I add other vegetables?
-
Yes, green peas, bell peppers, or paneer work wonderfully. Add peas during the last 5 minutes of cooking, or paneer cubes after adding the cream to prevent breaking apart.
- → How long do leftovers keep?
-
Store in an airtight container in the refrigerator for up to 3 days. The flavors actually improve overnight. Reheat gently on the stovetop, adding a splash of water if needed.