Place the block of tofu onto a plate and place another plate on top. Set a 3 to 5 pound weight on top (a container filled with water works well). Press the tofu for 20 to 30 minutes, then drain off and discard the accumulated liquid.
Preheat an oven to 375 degrees F (190 degrees C). Grease a baking sheet.
Whisk the yogurt, lemon juice, 2 teaspoons cumin, cayenne pepper, paprika, 1 teaspoon garam masala, and minced ginger together in a bowl.
Cut the tofu into 1/2-inch cubes, and gently stir into the yogurt mixture. Arrange the tofu cubes onto the prepared baking sheet so they do not touch each other.
Bake the tofu in the preheated oven until the tofu has firmed and the sauce is no longer sticky, 45 minutes to 1 hour. Gently turn the tofu every 15 minutes during baking.
Meanwhile, melt the butter in a large skillet over medium heat. Cook the garlic and serrano peppers in the hot butter until softened, about 3 minutes. Stir in the coriander, 2 teaspoons cumin, 2 teaspoons garam masala, and salt. Cook another minute to release the fragrance of the spices.
Add the tomato sauce and cauliflower florets; cover and cook, stirring frequently until the cauliflower is tender, about 15 minutes.
Once the cauliflower is tender, stir in the half-and-half, peas, cilantro, and baked tofu cubes. Bring to a simmer, and cook 5 minutes, or until your desired thickness is attained.