Cut the tofu into small cubes.
Next add in the chopped ginger and chopped garlic and then add coriander powder, garam masala powder, smoked paprika powder (or kashmiri red chili powder), salt and red chili powder.
Add in the yogurt and mix till all the tofu pieces are well coated with the spices and yogurt.
Cover and keep this marinated tofu in the refrigerator for 1 hour. You can keep it overnight as well but minimum of 30 minutes is must. Use thick yogurt here, tie regular yogurt in a muslin cloth and let it hang for few hours. Once all the water has drained and yogurt is dry and thick, it's ready to be used in the recipe.
While the tofu is in the refrigerator, prepare the curry. Heat oil and butter in a pan on medium heat.
Once hot, add cinnamon sticks and cumin seeds. Wait till cumin seeds crackle.
Add roughly chopped onions and cook till the onions start turning light golden brown in color.
Then add ginger, garlic and cook for 1-2 minutes or till raw smell goes away.
Add chopped tomatoes, sriracha, curry powder, sugar, kashmiri red chili powder and salt. Give a good mix.
Cook the tomatoes with spices for around 10-12 minutes or till tomatoes are completely done and oil leaves the side of the spice mix. This is very important, the masala should be nicely cooked on medium heat, don't rush this.
Remove pan from heat, let it cool down a little and puree the mixture to a smooth paste.
Put pan back on heat again. Add the pureed onion-tomato paste back to it.
Add heavy cream and mix. Let the curry simmer on low for 3-4 minutes as you prepare the tofu.
Remove the marinated tofu from the refrigerator. Spray a pan with little oil and add tofu to it.
Roast/cook the marinated tofu cubes till they becomes brown in color.
Add the roasted tofu to the curry and let it all simmer for additional 2-3 minutes on low heat.
Garnish with cilantro and serve tofu tikka masala with any bread of your choice.
