Pat dry tofu with paper towels and cut it into cubes.
Soak cashews in hot water for 15 minutes. Then drain the water.
Heat a large pan on medium heat. Once hot, add the oil, cumin seeds and let them splutter about 30 seconds. Add chopped green chili, ginger and garlic. Saute for 30 seconds to a minute till the raw smell is gone.
Then add the chopped onions. Cook the onion for 3-4 minutes until onions are golden in color.
Add the chopped tomatoes, spices and stir them in. Cover and cook till the tomatoes soften for 2-3 minutes. Remove the lid and mix well.
Add the spinach and water. Mix well and cook down the spinach for 2-3 minutes. You can cover with a lid which can help the spinach to wilt quickly. Remove lid and stir well. Turn off heat.
Transfer the mixture to the blender, add cashews and blitz on medium speed to make a coarse puree.
Heat the same pan on low heat. Pour the spinach mixture into the pan and give it a stir. Cover with a lid and cook for 2-3 minutes on medium heat. Then remove lid. If using, add the coconut milk and stir it in.
Add in the tofu and gently stir. Cook on medium-low heat for 3-4 minutes so the tofu softens and soaks in the flavors of the curry.
Transfer to a serving bowl. Serve palak tofu hot with naan or rice.