1. In a 3- to 4-quart pan over high heat, bring 2 1/2 cups water and the rice to a boil; cover, reduce heat to low, and simmer until liquid is absorbed and rice is tender to bite, 18 to 20 minutes.
2. Meanwhile, in a 10- to 12-inch frying pan over high heat, bring about 3 cups water to a boil. Add green beans and cook until tender-crisp to bite, about 2 minutes. Drain and rinse under cold running water until cool. Wipe pan dry.
3. Pour oil into pan over medium-high heat. When hot, add onion, garlic, and ginger; stir often until onion is limp, about 5 minutes. Stir in cumin, coriander, cayenne, cauliflower, and 1 cup water. Cover and bring to a simmer; reduce heat and simmer, stirring occasionally, until cauliflower is tender when pierced, 8 to 10 minutes.
4. Add tomatoes and garbanzos, cover, and simmer, stirring occasionally, to blend flavors, about 10 minutes. Add green beans and stir occasionally until hot, about 2 minutes. Add salt and pepper to taste.
5. Spoon rice into four wide, shallow bowls and top equally with vegetables and sauce.