Place tofu on several layers of paper towels. Cover tofu with several more layers of paper towels; top with a cast-iron or other heavy skillet.
Let stand 30 minutes. Discard paper towels.
Cut tofu into 1/2-inch cubes.
Place onion in a food processor; pulse until finely chopped.
Heat a large skillet over medium heat.
Add oil to pan; swirl to coat.
Add mustard seeds and cumin; cook 10 seconds or until mustard seeds begin to pop.
Add onion and curry powder; cook 10 minutes, stirring frequently. Increase heat to medium-high; cook 2 minutes or until onion is golden, stirring constantly.
Place garlic and ginger in food processor; process until a smooth paste forms. Stir garlic mixture into onion mixture; saut 1 minute, stirring constantly. Stir in tofu, cauliflower, 1/4 cup water, salt, and tomatoes; bring to a simmer. Cover, reduce heat to medium-low, and cook 15 minutes. Uncover, increase heat to medium, and simmer 10 minutes or until cauliflower is tender.
Spoon 3/4 cup rice onto each of 6 plates; top each serving with 1 cup tofu mixture. Spoon 2 teaspoons yogurt over each serving; sprinkle with cilantro.