This is probably a weeknight recipe, but I like to make a double-batch on Sunday nights and have a very happy work lunch on Monday. Serve it over rice and/or naan. Lightly adapted from Cook's Illustrated. —Rachel Christensen
extra-firm tofu, drained
fresh serrano chile, ribs and seeds removed, flesh minced (though I like to keep a few seeds for added heat!)
Combine salt, cayenne, coriander, cumin and in small bowl. Sprinkle both sides of tofu with spice mixture. Place tofu on plate, cover, and refrigerate for 30 to 60 minutes.
In large bowl, whisk together ginger, garlic, oil, and yogurt; set aside.
Heat oil in large Dutch oven over medium heat until shimmering. Add onion and cook, stirring frequently, until light golden, 8 to 10 minutes.
Add ginger, garlic, tomato paste, chile, and garam masala; cook, stirring frequently, until fragrant, about 3 minutes.
Add salt, sugar, and crushed tomatoes; bring to boil. Reduce heat to medium-low, cover, and simmer for 15 minutes, stirring occasionally.
Stir in cream and return to simmer. Remove pan from heat and cover to keep warm.
While sauce simmers, adjust oven rack to upper-middle position (about 6 inches from heating element) and heat broiler. Using tongs, dip tofu into yogurt mixture (tofu should be coated with thick layer of yogurt) and arrange on wire rack set in foil-lined rimmed baking sheet or broiler pan. Discard excess yogurt mixture. Broil tofu 12-15 minutes, flipping halfway through cooking.
Let tofu rest 5 mins, then cut into 1/2 or 1 inch chunks and stir into warm sauce (do not simmer tofu in sauce). Stir in cilantro, adjust seasoning with salt, and serve.