Joint the chicken into 8 pieces (or ask your butcher to do this for you). Heat the oil in a flameproof casserole and brown the chicken on all sides. Remove the pieces with a slotted spoon and set aside.
Add the onions, garlic and spices and sauté over a low heat for 10 minutes until just golden. Return the chicken to the pan, stir in the stock and bring to the boil. Cover and simmer gently for 30 minutes.
Stir in the olives, preserved lemon and coriander and cook for a further 15–20 minutes until the chicken is really tender. Taste and adjust the seasoning, if necessary.