01 - Heat butter and oil in a large skillet or Dutch oven over medium heat until melted and shimmering.
02 - Add onion and sauté until soft and golden brown, about 5 minutes. Stir in garlic and ginger; cook for 1 minute until fragrant.
03 - Add cumin, coriander, turmeric, garam masala, chili powder, salt, and black pepper. Stir continuously for 30 seconds to toast and bloom the spices.
04 - Add potatoes and cook for 3 minutes, stirring constantly to coat evenly in the spice mixture.
05 - Add chopped tomatoes and water. Stir well, cover, and simmer for 10 minutes until potatoes begin to soften.
06 - Add cauliflower florets and stir to combine. Cover and cook for another 12–15 minutes until both vegetables are fork-tender.
07 - Reduce heat to low. Stir in heavy cream and simmer uncovered for 3–4 minutes until sauce thickens and coats the vegetables.
08 - Taste and adjust salt or spices as needed. Garnish with fresh cilantro and serve with lemon wedges, basmati rice, or warm naan.