Heat the oil in a large saucepan.
Add the onions and saute them until they turn transparent.
Add the ginger and curry leaves and stir, about 30 seconds.
Add the tomatoes and the spice powders. Mix well and allow it to cook until the oil starts to separate.
Add the cabbage and saute until the cabbage starts to soften, about 3-5 minutes.
Add the rice and stir well to mix for about 2 minutes.
Add the water and bring to a boil. Turn down the heat to a simmer, place a tight lid over the saucepan, and allow the rice to cook, undisturbed, for 15 minutes.
Let the rice stand at least 15 minutes without removing the lid after you turn off the heat.
Garnish with some shredded coconut and coriander leaves, if desired, and spritz a little lemon juice.