Coupez les parties grasses des poitrines de poulet et découpez-les en petits morceaux. Mettez le poulet de côté. Émincez l'oignon, hachez l'ail et râpez le gingembre.
Dans une grande casserole, faites fondre le beurre à feu moyen/vif. Une fois le beurre bien chaud (attention à ne pas le brûler), ajoutez les morceaux de poulet et faites-les dorer de tous les côtés. Retirez le poulet de la casserole et réservez-le. Ce n'est pas grave s'il n'est pas entièrement cuit, car il mijotera dans la sauce plus tard.
Réduisez le feu à moyen et ajoutez les oignons, l'ail et le gingembre. Faites revenir le mélange pendant 2 à 3 minutes, jusqu'à ce qu'ils commencent à ramollir. Ajoutez le garam masala et le poivre de Cayenne. Continuez à cuire et à remuer pendant encore 2 minutes.
Ajoutez la sauce tomate et les tomates en dés. Remuez jusqu'à ce que le tout soit bien mélangé. Remettez le poulet dans la casserole, couvrez et réduisez le feu à moyen-doux. Laissez mijoter le mélange pendant une heure, ou jusqu'à ce que le poulet soit tendre et bien cuit.
Pendant que le mélange mijote, commencez à préparer le riz. Combinez 1,5 tasse de riz et 2,25 tasses d'eau dans une casserole moyenne. Couvrez et portez à ébullition à feu vif. Dès que ça bout, réduisez immédiatement le feu à doux et laissez mijoter pendant 20 minutes. Après 20 minutes, éteignez le feu et laissez le couvercle en place jusqu'au moment de servir.
Après que le mélange de poulet et de tomates ait mijoté, émiettez le poulet en morceaux plus petits si vous le souhaitez (il doit être tendre et facile à défaire). Incorporez le yaourt nature. Servez le mélange de poulet sur un lit de riz. Garnissez de coriandre si vous le souhaitez.