Roughly chop onion, ginger, and garlic. Put them in a grinding jar and make a smooth paste. Take it out in a bowl and keep aside.
In the same grinding jar put roughly chopped tomatoes and green chilies. Make a paste. Take it out in a separate bowl.
Heat oil in a cooking pot. Add bay leaf and cumin seeds. Saute until they start spluttering and become fragrant. It will take just a few seconds if the oil is hot enough.
Add onion garlic paste and cook until the paste becomes golden brown. Keep on stirring in between. If the onion starts sticking to the bottom of the pot, add 1-2 tablespoons of water and continue cooking.
Add turmeric powder, kasoori methi, coriander powder, red chili powder, and 1-2 tablespoons of water. Mix and cook for about a minute.
Next, add tomato-green chili paste and salt. Mix, and cook until the tomato is nicely cooked. It will take around 8-10 minutes.
Add tomato paste and cook for about a minute.
Add chopped vegetables, mix everything, and cook without water for around 2 minutes.
After 2 minutes, add water, mix, and cover the pot. Cook covered for around 15 minutes or until the potatoes are cooked.
Switch off the stove. Add garam masala and cream. Keep stirring until the cream gets nicely mixed in the gravy.
Finally, add chopped cilantro and lime juice. Mix and serve hot with rice or roti.