Heat a frying pan over a medium heat. When hot, add cumin, coriander, mustard, chilli, fennel and fenugreek seeds. Stir until they become a little darker. Transfer to a bowl to cool. Once cool grind into a powder using a mortar and pestle.
Heat the oil in a wide non-stick lidded pan over medium-high heat. When hot add the onion, ginger and garlic. Fry for 4 to 5 minutes, stirring constantly until golden brown. Add the tomatoes and cook and stir for 3 to 5 minutes until mushy.
Stir in ground spices and cook for 1 minute. Add lamb and salt, stir and cook for another 5 minutes. Stir in the water, sugar and curry leaves and bring to a simmer. Cover and reduce the heat to low. Simmer gently for about 80 minutes or until the lamb is tender.
Remove the lid, increase the heat to high and cook, stirring continuously until the sauce has reduced to the point where it clings to the meat. Serve garnished with chopped fresh coriander.