Fry the onions in 2 tablespoons of oil until golden brown. Remove it from oil with a slotted spoon and set aside. Fry the lamb pieces in the same oil until browned. Remove from the oil and set aside.
Grind the ginger-garlic with little water and make it into a fine paste.
Then fry the cumin seeds, cinnamon, cardamoms, cloves, peppercorns, ginger-garlic paste, red chili powder and coriander powder in the same oil for about 7 minutes. Add the fried lamb pieces to it and pour 2 cups of water and cook until the meat is tender. Then add the beaten yoghurt and cook for further 30 minutes. Add soaked saffron, cream and fried onions to it. Mix well and cook for 15 more minutes over low heat. Serve garnished with chopped coriander leaves.