Begin by preparing the tofu marinade. First, press the tofu to remove any excess water. Then, cut the tofu into 1/2-inch cubes and set it aside.
Combine the yogurt, garlic, ginger, garam masala, turmeric, and salt in a small bowl.
Mix in the tofu and ensure it is well coated. Allow it to sit for approximately 30 minutes.
As the tofu marinates, prepare the butter sauce. Place the butter and onions in a pan over medium heat. Sauté the onions for approximately 5 minutes, stirring frequently, until they become translucent.
Then, add the garlic and ginger and stir for approximately 2 minutes.
Add the spices and stir for one minute.
Add the crushed tomatoes, coconut milk (or cooking cream), cashews, and sugar. Mix thoroughly, then raise the heat a little. once the sauce begins to bubble, lower the heat and let it simmer for 10-15 minutes.
Take the sauce off the heat and allow it to cool as you bake the tofu.
Place the marinated tofu on a lined baking sheet and bake at 350 F (180 C) for 15 minutes.
As the tofu bakes, pour the sauce into a high-speed blender and blend until smooth. After blending, pour the sauce back into the pan.
Add the cooked tofu to the sauce.
Serve with basmati rice or garlic naan.