Place the diced lamb shoulder into a bowl or food bag. Mix in three tablespoons of curry paste and leave to marinate for 30 minutes at room temperature, or up to 24 hours in the fridge.
Heat the oil and butter in a large heavy based pan, then add the onions, cinnamon stick, cardamom pods and the remaining tablespoon of curry paste. Fry over a medium heat for 10 minutes, until the onions are softened and starting to turn golden-brown.
Add the marinated lamb, and fry for a couple of minutes until the meat has changed colour - it doesn’t have to be browned.
Stir in the chopped tomatoes, tomato purée and enough stock to cover most of the lamb, with the top pieces just poking clear of the liquid.
Add the chickpeas and bring the mixture up to the boil, then turn the heat down to a simmer, and cook gently for 1 – 1½ hours, until the lamb is very tender and the sauce is rich and thick.
Spoon away the excess fat that will have gathered on the top of the curry, then season with salt and freshly ground black pepper to taste.
Add the spinach, stirring the spinach leaves into the curry until they wilt.
Serve the curry with your favourite rice, breads and chutneys.