Preheat the oven to 220C/425F/Gas 7.
For the marinade, make small cuts all over the chicken pieces with a sharp knife to help the marinade penetrate.
Mix the remaining ingredients together in a deep bowl. Smear the cut chicken with the marinade, cover and set aside in the fridge for 10 minutes.
Lift the chicken pieces out of the marinade and place on a baking tray. Bake the chicken in the oven for 13-15 minutes. You may need to turn the pieces after 8-10 minutes to ensure they colour evenly on both sides. (The chicken should not be completely cooked at this point as it will be simmered for a few more minutes in the sauce.) Strain off any cooking juices through a fine sieve and set aside.
For the sauce, place the tomatoes in a pan with 125ml/4fl oz water, the crushed ginger, garlic, cardamom and bay leaf. Simmer until the tomatoes are completely disintegrated.
Blend with a hand blender and pass the sauce through a sieve to obtain a smooth purée. Return to a clean pan, add the chilli powder and simmer for 12-15 minutes. It should slowly begin to thicken. When the sauce turns glossy, add the chicken pieces and the reserved cooking juices. Pour in a cup of water and simmer for about 3-5 minutes, or until the water is absorbed and the sauce returns to its original glossy consistency.
Slowly whisk in the butter, a couple of pieces at a time, and simmer for 6-8 minutes, or until the chicken is cooked through and the sauce is beginning to acquire a glaze. Add the chopped ginger, green chillies and cream and simmer for a minute or two longer, taking care the sauce does not split. Stir in the salt, crushed fenugreek leaves and garam masala, then check the seasoning. adding salt and pepper to taste and add the sugar.
For the butter rice, heat the oil in a large saucepan and, once hot, add the onion. Cook until the onions are golden-brown - this will take approximately 10 minutes.
Stir in the cardamom, cinnamon and cloves. Add the rice and stir to coat in the onion spice mixture. Add 600ml/20fl oz water and bring to the boil, reduce the heat to low and cover with a lid. Cook for 15 minutes, then turn off the heat, leaving the lid on, and leave to steam for another 15 minutes.
Just before serving fork through the butter.
Serve the butter chicken on a bed of rice and garnish with the coriander.