Faire griller les graines de coriandre à feu moyen-doux jusqu'à ce qu'ils commencent à brunir. Répéter le procédé avec les graines de cumin, puis avec les piments rouges. Ajouter le sel et moudre le tout en poudre fine. Mélanger avec l'ail et le gingembre pour former une pâte épaisse.
Couper l'agneau en gros dés. Trancher les oignons. Diluer le tamarin dans l'eau chaude.
Saupoudrer le curcuma sur l'agneau, en remuant délicatement pour bien l'enrober.
Faire griller les graines de fenouil comme ci-dessus et réserver.
Chauffer une cocotte à feu moyen avec l'huile et le ghee. Cuire les oignons jusqu'à ce qu'ils soient dorés. Incorporer la pâte de curry et faire cuire pendant 1mn. Incorporer la viande et faire revenir pendant 1mn de plus.
Verser 2/3 du lait de coco et 1 tasse d'eau et porter à ébullition, puis mettre à feu à doux. Laisser mijoter pendant 10mn.
Incorporer le reste du lait de coco et 1 tasse d'eau, avec les gousses de cardamome, la cannelle et les graines de fenouil grillées. Couvrir (avec le couvercle entrouvert) et faire revenir à feu doux, pendant environ 1 et 1/2h pour que l'agneau soit tendre. Remuer de temps en temps et ajouter de l'eau si la sauce devient trop épaisse.
Lorsque l'agneau est tendre, ajouter les épices, le sucre, et la pâte de tamarin et laisser cuire 5mn de plus, pour que la sauce épaississe.
Retirer le bâton de cannelle et de cardamome avant de servir l'agneau Madras.