The day before, put the lamb in a large bowl together with the ginger, garlic, turmeric, black pepper and yogurt. Stir to mix the ingredients well. Put the lamb in the refrigerator to marinate for 12-24 hours.
The next day, remove the lamb from the fridge an hour before cooking. Preheat the oven to 170°C. In a pan, saute the coriander, cardamom, cinnamon, cloves and cumin, over medium heat until darker and fragrant. Grind spices in a blender or food-processor at high speed. Add the onions, red and hot peppers, paprika and chili powder. Grind them all together until they become purees.
In a large pot (one you can transfer in the oven later), heat the sunflower oil. and sauté the onion/spice puree for about a minute. Add the marinated lamb and the grated tomatoes. Stir for a while to bring everything to a simmer. Finally, add the stock and season with salt. Cover the pot, and transfer the curry to the oven for 2 hours.
Serve it with rice, sprinkled with chopped fresh coriander and mint.