Heat a large frying pan on a medium flame and, when hot, toast the fennel, mustard, cumin and coriander seeds for a minute or two, shaking the pan every few seconds, until the coriander seeds turn golden (coriander always takes first). Tip the seeds into a mortar and bash until fairly well ground.
Heat 4 tablespoons of oil in the same pan and, when hot, return the ground spices with the onions, salt and curry leaves. Fry for 10 to 12 minutes, until the onions are golden and crisp-edged. Meanwhile, cut the vine tomatoes into eighths and the baby tomatoes in half.
Add the chillies and garlic to the pan and cook, stirring, for 2 minutes. Then add the tamarind and coconut milk, stir, and transfer half the mixture into your second large frying pan.
Divide the tomatoes between both pans, so they sit in one layer. Set both pans on a medium heat and cook for 20 to 25 minutes without stirring: you want the tomatoes to keep their shape while driving off the water in the coconut milk. You’ll know there’s none left when you can see oil at the sides of the pan. (The curry won’t be dry: the tomatoes contain a lot of juice, which will come out while they’re resting.) Now tip the contents of the second pan gently back into the first.
If you’d like to add a final bit of pizazz, heat a little oil in a saucepan and, when hot, drop in a handful of extra curry leaves. Let them crackle and crisp, then take off the heat and pour over the tomatoes. Serve with naan or rice.