Wrap the tofu block with absorbent paper and place between two chopping boards, adding a few books on top of the top board to add pressure. Set aside 30 minutes to release all the tofu moisture.
Cut the tofu block into thin slices (about 0.4 inches/0.1cm). Then pull apart the tofu slices to create irregular pieces of tofu - this mimics chicken texture the best! but you can also simply cube the tofu slices if preferred.
Preheat oven to 200°C (400°F). Line a baking tray with parchment paper. Set aside.
In a large mixing bowl, combine all the marinade ingredients: olive oil, cornstarch, garlic powder, masala, turmeric, and salt.
Add the tofu chunks into the marinade and combine with a spoon.
Lay the tofu pieces onto the prepared baking sheet into a single layer, make sure the tofu pieces don't touch each other or overlap.
Bake on the center rack for 20-30 minutes, flipping them halfway. Meanwhile, prepare the curry sauce
Heat a large skillet or medium saucepan over medium-high heat. Add the coconut oil, butter, and chopped onions. Stir and cook until fragrant and soft, about 2 minutes.
Add all the spices: ginger, garam masala, fenugreek, cumin, salt, crushed garlic, and tomato paste. Stir and cook for 30 seconds until it forms a paste.
Stir in canned coconut cream, stir and simmer for 2-3 minutes.
Stir in the baked tofu pieces, cover and simmer for 10-15 minutes, stirring occasionally until the sauce thickens.
Serve with jasmine rice, vegan naan bread, or cauliflower rice for a low-carb version.