Remove skin and slice 1 onion, roughly chop 5 cloves garlic and 2 inch piece ginger, slit green chilies in the middle, roughly chop 3 tomatoes, roughly chop 1/2 cup coriander leaves, roughly chop 2 large bundles spinach, cube your paneer or tofu and keep aside
Turn your heat on medium low and add 3 tbsp oil, when oil is heated add onions, stir fry well till translucent about 5 minutes or so
Add ginger and garlic and fry for 4 to 5 minutes
Add coriander leaves and green chilies and fry for 1 minute or so
Add spices, give it a good toss, add salt and tomatoes and cover your pot, allowing it to cook for 7 to 10 minutes. Make sure you are cooking this on low heat, so your tomatoes and spices do not get burnt. You need to give it time for the spices, the tomatoes, onion, garlic, ginger and coriander leaves to cook well and release all its aroma, thereby turning it into a masala, which is the basis to a good curry. This step is key in determining how tasty your curry will turn out. Once this is cooked really well, add the spinach and water.Close the pot and allow the spinach leaves to wilt. This shouldn't take too long Pour this into a high powered blender and blend on high. Turn the pureed spinach mixture back into the pot, place the pot back on medium heat and heat throughly . Add a bit of water if the curry is too thick
Finally add your chopped paneer (or tofu) if you are using it and you are done. You can lightly pan fry the paneer, if you like your cheese slightly crisp.
Serve with rice or roti and a mango pickle. Alternatively you can eat as a soup on its own