Heat the ghee or vegetable oil in a deep saucepan and sauté tomatoes until their juices run.
Add bay leaves, garam masala, turmeric, cayenne pepper, salt and coconut and stir thoroughly for another 2-3 minutes.
Remove leaves and stem from cauliflower, turn it floret-side down, and place over cooking mixture.
Pour water, cover pan, and simmer about 30 minutes. From time to time, remove cover and baste cauliflower with cooking mixture.
When cauliflower is tender, remove from heat and transfer the whole cauliflower together with the remaining liquid onto a serving dish.
Garnish with coriander and lemon and serve hot.