Put the onion, chillies, ginger, garlic, salt, garam masala, chilli powder and tomato purée in a food processor. Season with lots of freshly ground black pepper. (For a great flavour add more than you imagine you’ll need.)
Blend the ingredients into a paste as smooth as you can get it. You’ll need to remove the lid of the food processor and push the mixture down with a spatula 2-3 times. Add the lamb and blend once more. Transfer to a bowl and stir in the coriander. Cover the dish with cling film and chill for 1-3 hours, or overnight, to allow the mixture to stiffen and the meat to absorb all the wonderful spices.
To make the sauce, heat the ghee (or oil) in a large non-stick saucepan or sauté pan and gently fry the onions, garlic and ginger for about 10 minutes, or until softened and lightly browned, stirring regularly. Add the chilli powder and garam masala and cook for 20-30 seconds, stirring constantly.
Stir in the roughly chopped tomatoes and cook for 3-4 minutes over a high heat, or until they soften and release their juice, stirring constantly. Add the tomato purée and sprinkle with the salt and sugar and pour over the lamb stock. Season with lots of ground black pepper, add the cinnamon and bay leaves and bring to a simmer. Cover the sauce loosely with a lid and cook for 20 minutes, stirring occasionally.
While the sauce is simmering, make the meatballs. Take a small portion of mince mixture at a time and roll into a smooth ball – a little smaller than a walnut in its shell. You should be able to make around 24 balls. If your mince becomes a little sticky, either roll with wetted hands or dust your hands with plain flour as you roll. Put on a plate as soon as each one is rolled.
Remove the pan with the sauce from the heat after its 20 minutes are up and discard the cinnamon stick and bay leaves – they will be easy to pick out with a fork or tongs. Blend the sauce with a stick blender until as smooth as possible. (If you don’t have a stick blender, leave to cool for a few minutes then transfer to a food processor and blend to a purée.)
Return the sauce to the heat and stir in 200ml/7fl oz water. Bring to a gentle simmer. Drop all the meatballs gently into the bubbling sauce and return to a simmer. Cook, uncovered, for a further 30-35 minutes, or until the meatballs are tender and the sauce is thick, stirring regularly. If the sauce reduces too far or begins to stick on the bottom of the pan, add a little extra water and continue cooking. Adjust the salt and pepper to taste.
Serve the meatballs with rice, topped with thick natural yogurt and fresh coriander leaves if you like.