Photograph: Catherine Gratwicke
Mix together all the marinade ingredients with 1 tsp salt. Add the chicken and marinate, preferably overnight, covered, in the fridge.
Blend together the ginger and garlic for the curry, using a little water to help. Heat the oil and half the butter in a large nonstick saucepan and add the whole spices. Once they have sizzled for 15 seconds, add the ginger and garlic paste; cook until all the moisture has evaporated and the garlic smells mellow and looks grainy. Add the tomatoes and tomato purée and cook down until the resulting paste releases oil; it should take around 20 minutes. Now brown this paste over gentle heat, stirring often, for 6-8 minutes, or until it darkens considerably. Pour in 250ml water, bring to a boil, then pass through a sieve, pressing down to extract as much liquid and flavour as possible from the tomatoes and spices. Discard the solids. Set the sauce aside.
Heat the oven to 240°C, fan 220°C, gas 9, ideally with the grill on too, if your oven can do that. Place the chicken on a foil-lined baking tray on the uppermost shelf of the oven and cook for 8 minutes, or until slightly charred. Remove from the oven. The chicken will finish cooking in the sauce. Cut or pull the meat into large chunks.
Heat the remaining butter and add the green chillies. Add the sauce, salt and a good splash of waterand simmer for 3-4 minutes. Add the chicken, cream, sugar, chilli powder and enough paprika to get a colour you like, then add the garam masala and the powdered fenugreek leaves, if using. Simmer, stirring often, for 4-5 minutes, or until the chicken is done and the sauce is lovely and creamy. You may need to add a little more water. Taste and adjust the balance to your palate by adding more salt, sugar or cream. Sprinkle over the coriander leaves and serve.
Kitchen secret: taste carefully while you cook, as the sweet / sour balance of tomatoes changes with the season and variety. Do not use plum tomatoes; they're too sweet. Serve with naan or paratha.