In a bowl, combine the ingredients for the marinade then mix through the cubes lamb. Cover the bowl with plastic wrap and set aside to marinate for at least 1 hour, but up to 4 hours
In a fry pan, toast all of the ingredients for the Masala until fragrant over the lowest heat setting
Transfer all of the spice to a spice grinder (or mortar and pestle if you don't have a grinder) and grind to a fine powder. Set this aside
Heat up the vegetable oil in a pot and add in the onions
Sauté the onions with a pinch of salt over a low-medium heat until softened
Add the jaggery and continue to sauté the onions until they are nice and caramelized, and extremely soft
Add the minced ginger and minced garlic, and stir through well
Add all of the prepared masala powder to the pot and stir through well until smokey and fragrant
Add the tomato puree and mix through well with a pinch of salt and mix for 1 minute
Add the marinated lamb and stir through and let the lamb sear for about 1 minute
Pour in the stock and water into the pot and mix all the contents. Bring the contents of the pot to a gentle boil, then cover and let simmer for about 45 minutes (or until the lamb becomes very tender) ensuring you stir everything every 15 minutes to check up on the water amount. This dish should be relatively thin and have a lot of gravy so be sure to top up the water if it seems to become dry
Serve with fresh roti or chappati and garnish with fresh coriander leaves and some pomegranate