Put the mutton in a pan with half of the whole garam masala i.e. cinnamon, bay leaves, cardamoms, cloves and peppercorns.
Cover with water, bring to a boil and then simmer for half an hour.
Soak the saffron in hot milk.
Heat the ghee or clarified butter in a large, shallow, heavy pan.
Stir in the left over bay leaves, cloves, cinnamon along with whole red chilies. Then add sliced onions with little salt.
Cook over medium heat, stirring frequently, until the onions begin to turn reddish brown, about 15 minutes.
Mix the dry masala powders i.e red chili, coriander and cumin with ginger paste in a separate bowl by adding little water.
Stir in the above paste of ginger and dry masala into the frying onions and cook, stirring, for about 2-3 minutes, or until the spices release their fragrance.
Add the chopped tomato and cook the whole mixture on low heat for about 8-10 minutes. (If the mixture gets too dry, splash in a little water)
Drain the meat and discard the whole spices. Keep the stock aside. Add meat to the frying masala.
Increase the heat to medium high and cook, stirring for a few minutes, making sure all the meat is coated with the spices.
Turn the heat to medium. Start adding the yogurt 1 tablespoon at a time, stirring and incorporating it into the mixture before adding the next tablespoonful. Continue adding in this way until all the yogurt has been used. Turn the heat to low. (You can even use milk instead of yoghurt)
Add the leftover stock and bring to a boil. Cover the pan and simmer the meat for about 1 1/2 hours, or until the meat is very tender. If necessary, splash in a little water from time to time.
When the meat is tender, add salt and little sugar to taste. Stir the cream and cook until the sauce is thick. Stir in the saffron milk and heat thoroughly.
Fry the almonds in a little oil until golden brown.