Wash the tomatoes, chop into small sized pieces, keep aside.
Wash the cauliflower very well and separate the florets, cut into medium sized pieces. You can leave the small florets as they are.
Heat oil in a pan and add the cumin seeds.
As the cumin seeds are lightly fried, add the cauliflower and stir fry for about 3 to 4 minutes.
Add the garlic and onion powders and also salt, mix well and stir fry for another 3 to 4 minutes until the florets are lightly browned.
Add the chopped tomatoes and green chilies, mix well and stir fry for another 2 minutes.
Add the water, mix well, cover the pan with lid and cook in low heat for another 3 to 4 minutes or until the cauliflower is cooked but still crunchy.
If you overcook the cauliflower, it will be too soft and won't taste good in the curry.
The cauliflower goes from being the right texture to overcooked too soon, so watch and make sure not to overcook the cauliflower.
As soon as the cauliflower is cooked enough (still needs to be slightly crunchy for the curry to taste good), add the spices - turmeric powder, red chili powder, coriander powder and garam masala powder, mix everything well.
Simmer the contents for another 1 minute and switch off the stove, keep the pan away from heat to avoid overcooking of the cauliflower.
Add the curry leaves and heavy cream (if using), mix well to blend in with the curry.
Serve the cauliflower curry hot with chapathi, poori or rice as you wish!