Aqueça o óleo vegetal numa panela larga de fundo grosso em lume médio até começar a cintilar.
Adicione as cebolas médias finamente picadas e, se desejar, as vagens de cardamomo verde, o pau de canela e a folha de louro (opcionais). Frite, mexendo de vez em quando, durante 8 a 10 minutos, até as cebolas ficarem douradas e macias.
Junte o gengibre fresco ralado e os dentes de alho esmagados. Cozinhe por 1 minuto, mexendo sempre, até começarem a libertar aroma.
Acrescente o cominho em pó, o coentro em pó, o açafrão-da-terra em pó e o piri-piri em pó. Mexa e cozinhe por 30 a 60 segundos, só até tostar ligeiramente as especiarias.
Adicione os pedaços de coxa de frango e misture bem para envolver nas especiarias e nas cebolas. Cozinhe durante 5 a 7 minutos, mexendo de vez em quando, até o frango selar e ficar ligeiramente dourado por todos os lados.
Despeje o tomate em cubos e tempere com uma boa pitada de sal. Mexa e deixe ferver suavemente. Em seguida, reduza o lume ao mínimo, tape e cozinhe por 20 minutos.
Destape, aumente o lume para médio-alto e cozinhe, mexendo com frequência, durante 10 a 15 minutos, até o molho engrossar e o óleo se separar. Se ficar demasiado seco, junte um pouco de água quente.
Junte o garam masala, cozinhe por mais 1 minuto e retire a panela do lume.
Prove e ajuste o sal, se necessário, e salpique com coentros frescos picados.
Sirva quente acompanhado de arroz basmati fofo, pão naan aquecido ou chapatis.