In a pan, dry toast the cashews (don't add any oil). I promise you this extra step is worth it. (Be careful to keep an eye on them, nuts will burn if you don't shake the pan regularly!)
Press the tofu to remove excess moisture. Cut into cubes and toss them to coat in cornstarch. This will make the texture a bit chewier/bouncier, but skip this step if you don't want to spend the time. Put a bit of oil in a pan, and sauté the cubes (they will try to stick to each other because of the cornstarch, make sure you divide them back up). Tip in a bowl and set aside.
Peel and chop ginger, onions, garlic and chili. Cut into big chunks and add to a food processor or blender, together with the other curry paste ingredients listed.
In the same pan, add some oil and sauté the curry paste until it becomes fragrant. Add the can of coconut milk. Let bubble.
In the same blender (I'm trying to save you dishes here), add the cashews and the water, blend to a sauce, and add to the curry.
I always realise I forgot about the rice (if using) when I'm ready to serve, so here's a reminder ;-)
Also add the stock cube and lemon juice, and leave to bubble for 5-10 minutes. Add the lentils and the tofu and allow them to heat through.
Heat up the naan if using, and serve topped with toasted cashews, tomato cubes, cilantro leaves and chili slices.