Wrap the block of tofu in a clean kitchen towel and press with a heavy weight or use a tofu press for 20 minutes to remove excess moisture.
Preheat the oven to 400°F (200°C). Unwrap the tofu and break it into medium bite-sized pieces using your fingers.
In a mixing bowl, toss the tofu pieces with 1 tbsp oil, 1 tbsp cornstarch (or tapioca starch), 1/2 tsp paprika and 1/4 tsp salt until evenly coated.
Line a baking sheet with parchment paper, spread the tofu in a single layer, and bake for 20–25 minutes until crispy and golden, turning once if needed.
While the tofu bakes, heat 2 tbsp plant-based butter in a large skillet over medium heat. Add the diced onion and sauté about 5 minutes until softened.
Add 1 tbsp minced ginger, 2 minced garlic cloves, 1 tsp cumin seeds, 1 tsp coriander powder, 1 tsp garam masala, 1/2 tsp curry powder and 1/4 tsp chili powder to the pan and cook about 1 minute until fragrant.
Stir in 3 oz tomato paste and 13.5 oz full-fat coconut milk, reduce heat to low, and simmer 7–10 minutes, stirring occasionally, until the sauce is well combined and slightly thickened.
Add the baked tofu to the sauce and stir gently to coat the pieces thoroughly; heat through for a minute or two.
Garnish with fresh cilantro and serve.