Soak 1/2 cup cashew nuts in warm water for 30 minutes
Heat 3 tbsp oil in a large pan and saute 2 cups onions until the edges start turning brown.
Add 1 tsp garlic and 1 tsp ginger and saute again for a minute, until fragrant
Add 1/2 tsp red chilli powder, 2 tsp coriander powder, and 1/2 tsp cumin powder, along with 1/4 tsp 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 tsp 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 3/4 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 tsp kasuri methi, 1 tbsp cream (if using), required amount of salt, and 1 tsp garam masala. Mix well to combine everything
Finally add the fried paneer and 3 tbsp fresh coriander leaves, chopped. Mix gently until the paneer is well coated in the gravy.