Put the ginger, garlic, cumin, coriander, and chili into a food processor, or into a mortar and pestle, and blend to a paste. Add the ground almonds and water and then blend again, set aside.
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.
Add the spices and turn them in the oil. Add the onions and cook them until softened and lightly browned, but keep the heat gentle and stir frequently, to avoid sticking. Pour in the blended paste, and cook everything until it begins to colour. Add the yogurt, half a cup 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 meat is cooked through.
It's at this stage, that I like to take the pan off the heat and leave it to cool before reheating the next day.
So either now, or when you've reheated it, pour into a serving dish and scatter with the toasted flaked almonds.