Blanch the cauliflower in boiling water for 5 minutes Drain and set aside to cool.
Heat 3 tbsp oil in a pan and add the cumin seeds, when they start to pop add the onion and fry for 4 minutes.
Add the ginger and garlic and fry for 1 minute.
Reduce the heat to medium, add the meat and stir fry till it is crumbly and the liquid has evaporated.
Reduce the heat to low and add the turmeric, coriander, cinnamon, cardamom, and chilli powder, and the diced tomatoes. Stir and fry for 3 minutes Cover the pan with a lid and cook for 10 minutes Remove from the heat and allow to cool.
Put the cauliflower on a plate stem side up, fill the spaces between the florets with as much of the meat mix as possible.
Turn the cauliflower over and gently pull the florets apart and fill with the rest of the meat.
Heat the remaining oil and add the mustard seeds, when they pop add the add the cumin and curry leaves (if using).
Place the cauliflower right way up on the seasoned oil, cover with a lid and cook on medium heat till the cauliflower is cooked.
Serve the cauliflower on a serving dish with any remaining meat and juices from the pan around the cauliflower.