Step 1Combine the garlic and ginger with about 2 tablespoons of water in a small food processor and process to a paste. Set aside.
Step 2To a hot pan, add the oil and heat over high heat. Add the cumin seeds first and let splutter, then the green cardamoms, black cardamoms, bay leaf, cinnamon stick, cloves and fennel seeds.
Step 3Add the sliced onions and cook, stirring as needed, until golden brown, about 35 minutes. Reduce the heat to medium-high, add the lamb shank pieces and cook 10 minutes. Add the diced lamb, then lower the heat and gently simmer 45 minutes, stirring often. Add the water and the ginger-garlic paste and cook for 10 minutes. Add the turmeric, chile powder, cumin and coriander. Cook 10 minutes, then stir in the tomato puree and garam masala. Continue cooking until the shank meat is very tender, 20 minutes longer. Stir in the lemon juice and sugar, then season to taste with salt. Divide among 8 serving plates, making sure each serving has a lamb shank piece.