Combine tofu with 1 tablespoon of the vegetable oil, 2 teaspoons of the garam masala, and the salt. Mix gently to coat tofu; set aside.
Heat a large (12-inch) frying pan over medium-high heat and add 1 tablespoon of the oil. When it shimmers, add tofu in a single layer and cook until browned, about 5 minutes. Transfer to a plate.
Wipe out the pan, return it to the stovetop over medium heat, and add remaining 1 tablespoon oil. When it shimmers, add garlic and onion and cook, stirring occasionally, until onion is tender and browned, about 3 minutes. Stir in tomatoes and ginger and cook until tomatoes just start to soften, about 2 minutes.
Add spinach in handfuls and stir frequently, scraping the bottom of the pan to incorporate any browned bits. Cook until spinach is very wilted and liquid is cooked off, about 7 minutes. Stir in reserved tofu and cook until heated through, about 1 minute. Remove from heat. In a medium bowl, stir together remaining garam masala and yogurt and add to spinach mixture. Stir until well mixed and serve.
Beverage pairing:Ken Forrester Petit Chenin, South Africa. Almost any unoaked, moderate-alcohol, dry white wine could work with this dish, but Chenin Blanc is an especially good selection since it often has some of the earthy notes that you’ll find in spinach. This inexpensive one from South Africa is laden with the little complexities of spice, melon, and citrus.