Heat the ghee in a large heavy based pan . Add the onions and cook over a medium heat for 20-30 minutes, stirring occasionally, until they are soft and light brown.
Put the tomatoes, water, ginger and garlic into a liquidiser and blend until smooth. Remove the fried onions with a slotted spoon, add them to the paste and blend briefly until smooth.
Return the puree to the pan and add the lamb and salt. Simmer for 30 minutes then stir in the turmeric, chilli powder, cumin, paprika and ground coriander.
Continue to cook for 30-45 minutes ( shoulder) or 45-60 minutes ( leg) until the lamb is tender. Add a little water now and then if the sauce starts to stick.
Meanwhile put 175 g of the spinach leaves into a large pan and cook until they have wilted down to the bottom of the pan. Cook for a minute then transfer to a clean liquidiser and blend to a smooth puree,
Rinse out the liquidiser again and add the green chillies and 2-3 tbsps water. Blend until smooth and set aside.
When the lamb is cooked there will be a layer of ghee sitting on top of the curry. Skim this off if you like, then stir in the spinach puree and the remaining leaf spinach. Cook for 2 minutes.
Now taste the curry and add as much of the green chilli puree as you like depending on how hot you like it. Simmer for 2 minutes.
Stir in the fresh coriander and garam masala. Transfer to a serving dish and sprinkle with a little more ground cumin and some freshly ground black pepper. Serve with pilau rice.