Heat your oven to 200°C/Fan 180°C/Gas 6. Peel and grate or crush the garlic. Finely chop the coriander stalks (keep the leaves for later). Bash 4 cardamom pods with a rolling pin to crack them open. Shake the seeds into a large bowl. Add the garlic and coriander stalks with 2 tsp of the garam masala and a pinch or two of chilli powder, depending on how hot you like it.
Stir in 1 tbsp oil and a good pinch of salt and pepper. Peel and slice the onion into thin wedges. Add the onion, whole tomatoes and chicken to the bowl. Turn to coat everything in the oil.
Tip the chicken and veg into a snug roasting tin or ovenproof dish, making sure all the spices and oil come with them. Roast in the oven for 15 mins.
Drain the chickpeas and rinse them. Give the tin of coconut milk a shake to mix it. After 15 mins, add the chickpeas to the roasting tin and pour in the coconut milk. Return to the oven and bake for another 30-35 mins till the chicken is cooked through and the tomatoes have started to collapse.
When there is 15 mins left of the cooking time, tip the rice into a bowl. Cover with cold water and whisk for 1-2 mins till the water goes cloudy (this is the starch). Drain the rice, rinse and tip into a small pan.
Add 400ml boiling water and a pinch of salt to the rice. Cover and bring to the boil. Turn the heat right down and gently cook for 6-8 mins till all the water is absorbed. Take off the heat and leave to steam in the pan for 2 mins.
Take the tin out of the oven. Give the curry a stir, breaking up the tomatoes. Taste and add a pinch more salt and pepper if you think it needs it. Divide the rice between 2 warm bowls. Top with the curry. Garnish with coriander leaves to serve.