Put the ginger, garlic, cumin, coriander and chilli into a food processor, and blend to a paste. Add the ground almonds and 125ml/½ cup of water, then blend again, and set aside.
Put the cardamom pods, cinnamon stick, bay leaves and cloves into a small bowl.
Heat the oil in a large pan and add the chicken pieces — in batches so they fry rather than stew — and cook them just long enough to seal on both sides, then remove to a dish.
Tip in the bowlful of spices and turn them in the oil. Peel and finely chop the onions, add to the pan of spices, and cook until softened and lightly browned.
Pour in the blended paste, and cook everything until it begins to colour. Add the yogurt, 125ml / half at a time, stirring it in to make a sauce; then stir in the stock, cream and sultanas.
Put the browned chicken back into the pan, along with any juices that have collected under them, and sprinkle over the garam masala, sugar and salt.
Cover and cook on a gentle heat for 20 minutes, testing to make sure the chicken meat is cooked through.
Pour into a serving dish and scatter with the toasted flaked almonds.
