Heat oil in a skillet on medium-high. Add tofu cubes to the skillet and cook until brown and crisp on all sides. Use a cast iron skillet or a non-stick skillet. Make sure the oil is hot enough before adding tofu cubes and it takes about 3 minutes for tofu to get crisp on each side. Remove cooked tofu from skillet and set aside.
You can also bake tofu cubes on a parchment paper lined baking sheet (coat with cooking spray to prevent the tofu from sticking) or you can use a silicone mat. Bake in a preheated oven on 400 degrees F. for 25-30 minutes turning halfway.
Heat 1 tablespoon of coconut oil to the skillet, I love coconut oil because it gives a nice flavor to the curry dish. Add onion, and cook for 2 minutes, stir in garlic, garlic and cook until fragrant, about 1 minute. Add spices, cumin, coriander, cinnamon, cardamom, and turmeric and stir.
Add tomato sauce, cashew cream or coconut milk, maple syrup, water, cayenne pepper and salt to taste. Cook sauce until thick and creamy, about 2 minutes, add tofu pieces and stir to coat. Cook for about 2-3 minutes for the flavors to meld. You may need to add extra water if sauce gets too thick.
Serve with rice or roti and garnish with chopped cilantro leaves.