Combine the rice, 1 1/3 cups water, 1 teaspoon curry powder, 1/4 teaspoon salt and 1/2 tablespoon oil in a saucepan. Cover and cook, undisturbed, over medium-low heat, about 15 minutes; keep warm.
Meanwhile, chop the onion in a food processor, drain the excess liquid and set the onion aside. Mince the garlic and ginger in the processor and set aside, then puree the tomatoes with 1 cup water.
Heat the remaining 3 tablespoons oil in a Dutch oven or deep skillet over medium-high heat. Add the onion and cook until golden, about 12 minutes. Add the garlic-ginger mixture, chiles, 1 teaspoon salt and the remaining 1 teaspoon curry powder and stir-fry until slightly browned, about 3 minutes. Add the tomato puree and simmer until thickened, about 8 minutes. Add the shrimp, cover and cook over medium-low heat until the shrimp are firm, 3 to 4 minutes. Remove from the heat, then stir in the yogurt and half the cilantro.
Serve with the rice and garnish with the remaining cilantro.