Drain the chickpeas and rinse under cold water. Put them in a flameproof casserole or large saucepan, cover with water and bring to the boil, then reduce the heat and simmer, covered, for about 1–1½ hours until tender.
Meanwhile, combine half the olive oil with the cumin, cinnamon, ginger, turmeric and saffron in a large bowl, plus ½ teaspoon salt and ½ teaspoon pepper. Add the cubed lamb, toss and set aside in a cool place for 20 minutes. Wipe out the pan.
Heat the remaining oil in the pan. Fry the lamb in batches until well browned, draining to a plate.
Add the onions to the pan and cook, stirring constantly until browned. Stir in the garlic and the tomatoes with 250 ml (8 fl oz) water, stirring and scraping the base of the pan. Return the lamb to the pan and add enough water to just cover. Bring to the boil over a high heat and skim off any surface foam. Reduce the heat, cover and simmer for about 1 hour or until the meat is tender.
Drain the chickpeas and reserve the cooking liquid. Add the chickpeas with about 250 ml (8 fl oz) of the cooking liquid to the lamb. Simmer for 30 minutes.
Stir in the olives and lemon and orange rind and simmer for a final 30 minutes.
Mix in half the chopped coriander then serve garnished with the remaining coriander. When cool, this dish may be frozen in a plastic container.