Bake the tofu: Preheat oven to 400°F (200°C) and line a baking sheet with parchment paper.
Press tofu gently to remove excess moisture, then cut into 1-inch cubes. Toss tofu with 2 tbsp olive oil, salt, and pepper.
Spread in a single layer on the baking sheet and bake for 30–35 minutes, flipping halfway through, until golden and slightly crisp on the edges.
Make the spice paste: In a blender, combine: onion, garlic, ginger, tomato paste, cumin, coriander, garam masala, turmeric, chili powder, cinnamon, and 1 tbsp olive oil. Blend until smooth and thick.(If no blender: finely chop onion/garlic and sauté longer until very soft before adding spices.) Cook the paste: Heat a medium pot over medium-high heat. Add the blended paste and cook for about 5 minutes, stirring often, until darker in color, fragrant and starting to stick slightly to the pan. This step is important for removing raw spice flavor.
Make the sauce: Add the coconut milk and water. Stir well to combine, then bring to a gentle simmer, and cook for 10 minutes.
In the same blender used for the spice paste, combine the cashews and hot water and blend until completely smooth and creamy.
Stir the cashew cream into the curry and simmer for another 10 to 15 minutes, until thickened and silky. Taste and adjust seasoning.
Add the baked tofu and stir to combine. Remove from the heat and stir in the lemon juice. Season with salt to taste.
Top with fresh cilantro and serve.