Chop the tomatoes finely and set them aside. Instead of chopping, we can also blend the tomatoes. But do not make the fine puree; instead, keep the puree with small tomato chunks.
Heat oil and Ghee in a pan. Add cumin seeds and whole dry red chilis.
After cumin seeds start sizzling, add asafoetida, ginger paste, and slitted green chili. Saute for few seconds.
Add the dry ground masala and saute for a minute or until spices are aromatic. Keep stirring continuously to prevent the spices from sticking to the pan. Do not cook the masala for long; otherwise, it will start burning.
Add chopped tomatoes and mix well. Cook chopped tomatoes for a couple of minutes.
Then add turmeric powder, Kashmiri red chili powder, cumin powder, coriander powder, and Garam masala powder. Mix well.
Continue cooking the tomato mixture until tomatoes are soft, pulpy, and almost like a thick gravy.
Add salt, chickpea flour, coriander leaves, and dried fenugreek leaves. Mix immediately to prevent lumps from chickpea flour.
Then add water and cover the pan with a lid. Cook the gravy on low to medium flame for 8-10 minutes or until it thickens and oil separates; keep stirring in intervals.
I have added ½ cup of water, but if you want Paneer Masala more liquidy, add more water as needed.
Add seasoned Paneer cubes and mix well. Cover the lid and cook Paneer in the gravy on low heat for 3-4 minutes.
Covering the lid and cooking Paneer into the gravy, make Paneer very soft and melt in the mouth.
Remove the lid and add whisked yogurt or cream. Mix well, turn off the heat and serve hot with Roti, Paratha, or Naan. It goes well with steamed rice as well.