Heat oil over medium heat in a deep pan and add the onion, ginger and garlic to it.
Sauté till the onions soften. Add turmeric powder, cayenne / red chilli powder, coriander powder, garam masala and cumin powder. Mix well and let them cook with the onions for a couple of minutes.
Now add the chopped tomatoes and salt to this.
Sauté till the tomatoes soften. Turn off heat and let it cool.
Drain the cashew nuts and put them in a blender along with the onion-tomato mix and blend to a smooth paste.
Pour this onion tomato puree back to the pan and add the tomato paste. Add about a cup of water, ½ cup at a time and let it mix well. The consistency should be saucy yet thick, sort of like pasta sauce.
Now add the fresh paneer cubes, fresh peas or frozen green peas and mix in. Let it cook on medium-low heat for 5 mins or so.
Add the dried fenugreek leaves / kasuri methi to this and mix it in.
Fresh cream / heavy cream can be added to this at this point, if you want it extra creamier and richer. I usually tend to skip it as the cashews in the tomato gravy gives it a creamy texture in itself.
Garnish with cilantro / coriander leaves and serve with tandoori roti / chapatis / naan.
Notes
The tomato paste I use in this curry is not from a can or a tube as I am wary of BPA leaching into it. I try to avoid canned stuff as much as possible. I have found tomato paste in little glass jars in many stores and that is what I have switched to now.
Many add a little cream to the sauce. I have always made it without the cream and that is how we like it. But you are free to add a little cream, maybe ¼ cup or so at the very end.