Heat 2 to 3 tablespoons of oil in a heavy-bottomed pot on medium heat. Once the oil is hot, add the whole spices (cumin seeds, bay leaf, green cardamoms, and a stick of cinnamon). Sauté until fragrant.
Add 1 cup of finely chopped onions and a slit or chopped green chili. Sauté the onions until they turn light golden brown, then add 1 tablespoon of ginger garlic paste. Cook for another minute until the raw smell disappears.
Stir in the ground spices: chili powder, garam masala, turmeric, coriander powder, cumin powder, and salt. Mix well and cook for a minute to let the spices bloom.
Add 1 cup of pureed tomatoes and sauté the mixture until the tomatoes cook down and release oil, about 5-7 minutes. If using, add cashew cream or coconut milk, reserving 2 tablespoons for garnish later.
Once the tomato mixture is well-cooked, add approximately 4½ cups of mixed vegetables. Sauté for 2 to 3 minutes, then pour in half of the hot water. Mix well to combine.
Cover the pot and cook on medium heat until the vegetables are fork-tender, stirring occasionally. Add more hot water as needed to achieve desired consistency.
Taste the curry and adjust salt and garam masala as needed. Add crushed kasuri methi for additional flavor, if desired.
Garnish with chopped coriander leaves and drizzle the reserved cashew cream or coconut milk on top before serving.
For the best results, use fresh tomatoes for a richer flavor. If you want a creamier texture, consider adding heavy cream or coconut milk.
Feel free to experiment with different vegetables and spice blends to suit your taste preferences. This curry can also be made ahead of time and stored in the refrigerator or freezer, making it a great option for meal prep. Enjoy your homemade vegetable curry with your choice of rice or bread!