Blitz together the ginger and garlic with a little water in a mini blender to form a paste.
Add the chicken to a bowl with the garlic and ginger paste, stir to combine and set aside.
Cut the onion in half and peel it, then cut it into thin half-moon shapes about 3mm (⅛") thick.
Cut the tomatoes into 8 wedges each.
Add the cardamom pods, black peppercorns, cloves, mace and star anise to a dry frying pan (25cm or 10" in diameter) and toast over a medium-high heat for a couple of minutes.
Grind these spices in a coffee grinder or a pestle and mortar.
Reduce the heat in the pan to medium and add the cooking oil. When the oil is hot, throw in the onions, and cook until they start to go golden brown, which should take 7-10 minutes.
Add the tomato puree and marinated chicken and cook for 5 minutes, stirring regularly.
Add the spices that we ground up earlier, Kashmiri chilli powder, ground cumin, cinnamon, coriander, turmeric and salt, then stir to combine.
Throw in the tomato wedges and water and stir well. Reduce the heat to low, add a lid and simmer for 15 minutes.
Remove the lid, have a taste and add more salt if needed, then cook uncovered for a final 3-5 minutes to thicken if desired.