Heat the oil in a large pan and tip in the cumin seeds, cinnamon stick, cloves and bay leaves. When they are sizzling, add the onion and garlic. Reduce the heat to very low and cook gently for 5 minutes, stirring continuously. Cover and cook for another 5 minutes, then using a tongs, remove the cinnamon stick, cloves and bay leaf.
Increase the heat and saute the onion until golden, pressing it against the sides of the pan to crush it down. Turn the heat down and add the tomatoes, chillies, coriander, ginger, turmeric, garam masala, tandoori paste or powder, salt and palm sugar, stirring to combine. Add the cauliflower, then bring to the boil, cover, reduce the heat again and simmer for another 10-15 minutes, or until the cauliflower florets are soft.
Meanwhile, hard boil the eggs in a large pan of boiling water with the vinegar for about 7 minutes. Drain and rinse under cold running water to prevent them from cooking further. Shell the eggs and cut each one in half lengthways with a sharp knife. Nestle them on top of the cauliflower curry with the yolks facing upwards. Replace the lid and cook on a very heat for another 10 minutes.
Divide among bowls and garnish with the coriander leaves, then serve with the chapatis or rice, if liked.