Combine the yogurt with the garlic and ginger pastes in a large bowl or casserole dish. Add the chicken thighs, then spoon over the marinade, making sure that the chicken is totally covered. Cover and chill for 30 mins. Gently warm the milk in a pan. Don’t let it boil; it should only be tepid as you do not want to scald the saffron. Touch the surface of the milk to check the temperature, then when the milk is tepid, take off the heat, add the saffron strands and leave to infuse.
In a deep pan or wok that has a lid, heat the vegetable oil over a medium-high heat. Add the onions to the pan and fry gently, stirring occasionally, until golden brown and caramelised, about 10-15 mins. Using a slotted spoon, remove the onions from the pan, leaving as much of the oil in the pan as possible, and place on a plate to drain. Spread the onion rings across the plate so they crisp as they cool.
Add the whole garam masala to the pan with the oil in. After a few seconds, add the ground coriander and continue to cook, stirring. After 1 min, add the marinated chicken to the pan along with the marinade from the container. Keeping the heat on medium-high, continue stirring gently. After 5 mins, or when the oil separates from the yogurt and comes to the surface, add the chilli powder and 1 tsp salt. Lower the heat, cover the pan with the lid and simmer gently for 35 mins. The chicken is ready when the edges have softened and are slightly curled.
Remove the pan from the heat. Add the saffron-infused milk, ground almonds and sugar. Stir the chicken gently to avoid breaking it up.
Before serving, taste to check the seasoning and adjust as necessary. Garnish with the flaked almonds and the fried onions.