Soak ½ cup cashew nuts in warm water for 30 minutes
Heat 3 tablespoon oil in a large pan and saute 2 cups onions until the edges start turning brown.
Add 1 teaspoon garlic and 1 teaspoon ginger and saute again for a minute, until fragrant
Add ½ teaspoon red chilli powder, 2 teaspoon coriander powder, and ½ teaspoon cumin powder, along with ¼ teaspoon turmeric powder. Saute for 30 seconds until roasted.
Add 1.5 cups ripe tomatoes. Mix and cook until the tomatoes turn soft.
Top off with 1-2 teaspoon canned tomato paste and mix again well. See notes for why this ingredient is recommended. Turn the heat off and leave the above mixture to cool.
Meanwhile, grind the soaked cashew nuts with some water to a smooth paste. Set aside.
Saute 1.5 cups cubed paneer in some oil until all sides are light golden brown. Drain and set aside. Do not overcook the paneer, or it will turn rubbery.
Once the tomato onion mixture is cool, grind to a coarse paste. Leaving some texture in it makes the final gravy nicer
Return the onion-tomato paste to the stove in the same pan as before, along with the cashew paste and ¾ cup shelled green peas.
Add about 1.5 cups water and bring to a boil. Let it simmer for 10 minutes or until the peas is cooked. You can add more water if the gravy is too thick.
Add 1 teaspoon kasuri methi, 1 tablespoon cream (if using), required amount of salt, and 1 teaspoon garam masala. Mix well to combine everything
Finally add the fried paneer and 3 tablespoon fresh coriander leaves, chopped. Mix gently until the paneer is well coated in the gravy.