Coupe le poulet en cubes de 3 cm.
Dans un saladier, mélange le yaourt, le jus de citron, les épices (garam masala, cumin, curcuma, paprika), l'ail et le gingembre râpé. Ajoute du sel.
Ajoute les cubes de poulet et mélange bien pour les enrober de marinade. Laisse mariner 30 minutes au frigo (ou minimum 15 minutes).
Pendant ce temps, prépare la sauce : émince finement l'oignon, hache l'ail et râpe le gingembre.
Dans une grande poêle ou sauteuse, fais chauffer 2 cuillères à soupe d'huile à feu moyen.
Fais dorer les morceaux de poulet marinés 5-6 minutes en les retournant régulièrement. Retire et réserve (le poulet n'est pas complètement cuit, c'est normal).
Dans la même poêle, ajoute 1 cuillère à soupe d'huile et fais revenir l'oignon 5 minutes jusqu'à ce qu'il soit translucide.
Ajoute l'ail et le gingembre, fais revenir 1 minute.
Ajoute toutes les épices (garam masala, cumin, coriandre, paprika) et fais revenir 1 minute pour les torréfier.
Ajoute le concentré de tomate et mélange 30 secondes.
Verse la pulpe de tomates et le sucre. Mélange bien et laisse mijoter 5 minutes.
Ajoute la crème liquide et mélange jusqu'à obtenir une sauce homogène et onctueuse.
Remets le poulet dans la sauce et laisse mijoter 10 minutes à feu doux jusqu'à ce que le poulet soit bien cuit et que la sauce ait épaissi.
Goûte et ajuste l'assaisonnement en sel.
Parsème de coriandre fraîche ciselée.
Sers immédiatement avec du riz basmati, du riz pilaf ou du pain naan.