In a mixing bowl, combine the lamb pieces with ginger paste, garlic paste, ground cumin, ground coriander, turmeric powder, chili powder, and salt. Mix thoroughly to coat the lamb evenly. Allow it to marinate for at least 30 minutes.
Heat the vegetable oil in a sturdy-bottomed pan over medium heat. Add cumin seeds, green cardamom pods, cloves, and a cinnamon stick. Sauté for a minute until the aromas are released.
Add finely sliced onions and cook them until they attain a golden brown hue, stirring occasionally.
Add the marinated lamb to the pan. Cook until the meat is browned on all sides.
Add the chopped tomatoes, garam masala, ground paprika, ground cumin, ground coriander, turmeric powder, and salt. Mix thoroughly and allow the tomatoes to soften and cook down, which should take about 5-7 minutes.
Toss chunks of onions into the pan to add texture to the curry.
Pour in sufficient water to cover the lamb and onions. Cover the pan and let the curry simmer over low heat for approximately 1 to 1.5 hours, or until the lamb becomes tender and fully cooked. You can also employ a pressure cooker to expedite the cooking process.
Once the lamb is cooked and the curry has thickened, adjust the seasoning if necessary.
Garnish the Lamb Dopiaza by garnishing it with freshly chopped cilantro.
Serve the Lamb Dopiaza hot, accompanied by steamed rice or your preferred Indian bread.