Mix all of the marinade ingredients except for the tofu and coconut oil. Cut the tofu into cubes of 2 cm and combine with the marinade. Let the tofu marinate in the fridge for at least 30 minutes, ideally overnight. Heat 2 tbsp of coconut oil in a pan and fry the marinated tofu for 2 minutes, until crispy. Remove from the pan and set aside.
Add coconut oil to a hot pot. Fry cumin seeds and cinnamon at medium temperature for 20 seconds, stirring constantly. Coarsely chop tomatoes and the onion, and mince the garlic. Add these, the rest of the curry ingredients and 250 ml of water to the pot, bring to a boil, and simmer covered for 15 minutes at medium temperature, stirring occasionally. Then purée till smooth. Add fried tofu to the sauce and simmer gently for 2 minutes.
Serve with basmati rice, garlic naan bread, and pickled onions and cucumbers.