Faites chauffer l'huile végétale dans une cocotte ou une grande poêle à fond épais, à feu moyen, jusqu'à ce qu'elle soit bien chaude.
Ajoutez les oignons finement hachés ainsi que les gousses de cardamome verte (facultatif), le bâton de cannelle (facultatif) et la feuille de laurier (facultatif). Faites revenir le tout en remuant de temps en temps pendant 8 à 10 minutes, jusqu'à ce que les oignons soient dorés et tendres.
Incorporez le gingembre frais râpé et l'ail écrasé, faites cuire 1 minute en remuant constamment, jusqu'à ce que le tout soit bien parfumé.
Ajoutez le cumin, la coriandre et le curcuma moulus, ainsi que le piment en poudre. Mélangez puis laissez cuire 30 à 60 secondes en remuant, pour torréfier légèrement les épices.
Ajoutez les morceaux de poulet et mélangez bien pour les enrober d'épices et d'oignons. Faites cuire 5 à 7 minutes en remuant de temps en temps, jusqu'à ce que le poulet soit saisi et légèrement doré sur toutes les faces.
Versez les tomates concassées, salez d'une bonne pincée, mélangez, portez à léger frémissement, puis réduisez le feu à doux, couvrez et laissez mijoter 20 minutes.
Retirez le couvercle, augmentez le feu à moyen-vif puis poursuivez la cuisson en remuant fréquemment pendant 10 à 15 minutes, jusqu'à ce que la sauce épaississe et que l'huile se sépare. Si la préparation devient trop épaisse, ajoutez un filet d'eau chaude.
Incorporez le garam masala, laissez cuire encore 1 minute, puis retirez la cocotte du feu.
Goûtez et rectifiez l'assaisonnement en sel si besoin, puis parsemez de coriandre fraîche ciselée.
Servez bien chaud, accompagné de riz basmati, de naans tièdes ou de chapatis.