In a bowl, combine the yogurt, lemon juice, olive oil, ground cumin, ground coriander, paprika, turmeric, salt, and black pepper. Mix well.
Rub the marinade all over the lamb leg or shoulder. Cover and refrigerate for at least 4 hours, preferably overnight.
Preheat your oven to 350°F (175°C).
Heat olive oil in a large ovenproof pot or Dutch oven over medium heat. Add the chopped onion and cook until translucent.
Stir in the minced garlic and cook for another minute.
Add the marinated lamb to the pot and sear on all sides until browned.
Sprinkle ground cumin, ground coriander, turmeric, paprika, cinnamon, black pepper, and salt over the lamb. Add a little more olive oil if needed.
Cover the pot and transfer it to the preheated oven. Roast for 2.5 to 3 hours, or until the meat is tender and easily pulls away from the bone.
While the meat is roasting, rinse the basmati rice under cold water until the water runs clear.
In a separate pot, heat a little oil over medium heat. Add the slivered almonds and pine nuts and cook until golden brown.
Add the rinsed rice to the pot with the nuts, then pour in the chicken or beef broth. Bring to a boil.
Reduce heat to low, cover, and simmer for 15-20 minutes, or until the rice is tender and the liquid is absorbed. Stir in the raisins or currants.
To serve, place the rice on a large platter and arrange the roasted lamb on top.
Garnish with fresh parsley.
Enjoy your meal!