Prepare the Lamb:
In a food processor, pulse the onion until almost pureed.
In a large bowl, mix the lamb with the pureed onion, cinnamon, paprika, cumin, coriander, cardamom, and ground cloves.
In a Dutch oven, heat ghee or oil over medium-high heat and brown the lamb for 8-10 minutes, stirring frequently.
Remove the lamb from the pot and cover with foil.
Make the Curry Sauce:
In the same pot, heat ghee or oil and sauté chopped onions for 5 minutes until soft. Add garlic and ginger, cooking for 30 seconds.
Stir in the tomatoes and tomato puree, scraping up browned bits from the bottom.
Add paprika, curry powder, chili powder, cumin, coriander, and cashews. Stir well, then pour in 4 cups of water. Cook for 10 minutes.
Blend the mixture until smooth using a blender or immersion blender.
Return the sauce to the pot, add the browned lamb, and bring to a boil.
Cover, reduce heat to low, and simmer for 1 hour 45 minutes, stirring occasionally, until the lamb is tender.
Remove the lid and cook for another 15 minutes to thicken the sauce.
Stir in yogurt, season with salt, and finish with fenugreek leaves and garam masala.
Serving:
Garnish with red onions and cilantro. Serve hot with naan or rice.