Cut each chicken breast into eight or nine bite-sized pieces, season with black pepper and put them in a non-metallic bowl. Stir in the yoghurt, cover with cling film and chill for a minimum of 30 minutes but ideally 2–6 hours.
Heat the oil in a large, non-stick saucepan and add the onions, garlic and ginger. Cover and cook over a low heat for 15 minutes until very soft and lightly coloured. Stir the onions occasionally so they don’t start to stick.
Once the onions are softened, stir in the crushed cardamom seeds, cumin, coriander, turmeric, chilli powder and bay leaf. Pinch off the ends of the cloves into the pan and throw away the stalks. Cook the spices with the onions for five minutes, stirring constantly.
Stir in the flour, saffron, sugar and ½ teaspoon of salt, then slowly pour 300ml/½ pint cold water into the pan, stirring constantly.
Bring to a gentle simmer, then cover and cook for 10 minutes, stirring occasionally.
Remove the pan from the heat, take out the bay leaf and blend the onion mixture with a stick blender until it is as smooth as possible. You can do this in a food processor if you prefer, but let the mixture cool slightly first.
The sauce can now be used right away or cooled, covered and chilled until 10 minutes before serving.
Drain the chicken in a colander over the sink, shaking it a few times – you want the meat to have just a light coating of yoghurt.
Place a non-stick frying pan on the heat, add the sauce and bring it to a simmer.
Add the chicken pieces and cream and cook for about 10 minutes or until the chicken is tender and cooked through, stirring regularly. Exactly how long the chicken takes will depend on the size of your pieces, so check a piece after eight minutes – there should be no pink remaining.
Adjust the seasoning to taste, spoon into a warmed serving dish and serve garnished with fresh coriander if you like.