1. 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.
2. 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.
3. 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.
4. 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.