The day before, mix all the marinade ingredients together. Put the lamb shanks in a roasting tin and rub the marinade all over them. Cover and chill overnight.
Heat oven to 220C/200C fan/gas 7. Roast the lamb for 20 mins to brown, then reduce the oven to 160C/140C fan/gas 3. Cover the tin tightly with a couple of layers of foil, scrunching well round the sides so that no steam escapes, and return to the oven for another 3 hrs.
Uncover the lamb and increase the oven to 180C/160C fan/gas 4. Scatter the onions into the juices in the tin, then return to the oven for 30 mins, uncovered. Meanwhile, put the ginger, garlic, 1 can of chopped tomatoes, balti paste, garam masala and sugar into a blender or food processor. Whizz together until fairly smooth. When the onions have cooked for 30 mins, stir the tomatoey paste into the onions and juices with the second can of tomatoes, and return to the oven for a final 30 mins.
Scatter the lamb with pomegranate seeds and coriander, then serve straight from the tin with cooling yogurt or raita, your favourite Indian pickles, and plenty of rice and breads to mop up the tasty balti sauce.