Prepare the tofu: press the tofu to remove excess water. Cut it into cubes or thick slices.
Start preparing the sauce: in a large pan or pot, heat 2 tablespoons of oil. Sauté the onion until translucent. Add the garlic, ginger, and curry paste (if using). Cook for 1 to 2 minutes.
Add the spices: stir in the garam masala, cumin, and ground coriander. Mix well and cook briefly to release the flavors.
Incorporate the tomatoes: add the crushed tomatoes and tomato paste. Stir well and let simmer over low heat for about 10 to 15 minutes.
Grill the tofu while the sauce reduces: while the sauce thickens, toss the tofu with black pepper, paprika, and cornstarch. Heat 2 tablespoons of oil in a separate pan over medium-high heat. Grill the tofu until golden and crispy. Set aside.
Add coconut milk and the tofu: once the sauce has reduced, pour in the coconut milk or plant-based cream and mix well. Cook for another 5 minutes. Then, add the grilled tofu and gently mix to coat it with the sauce.
Final seasoning: add the lemon juice or apple cider vinegar. Adjust seasoning with salt and pepper. Garnish with fresh cilantro.
Serving Suggestions: Basmati rice or pilaf rice, Steamed or sautéed vegetables (broccoli, carrots, snow peas), Vegan naan or flatbreads