Place the chicken thigh fillets in a bowl. Add the Kashmiri chilli powder, salt, turmeric, and oil. Mix well so every piece is coated evenly. Cover and rest in the fridge for at least 30 minutes. If you have more time, leave it longer for better flavour.
Heat oil and butter in a large pan over medium heat. Once hot, add the cardamom pods, cloves, cumin seeds, peppercorns, cinnamon stick, and bay leaves. Let them sizzle for about 1 minute until fragrant.
Add the onion along with a small pinch of salt. Cook for 8 to 10 minutes, stirring often. You want the onion soft, lightly golden, and starting to break down. Add the garlic and ginger, and cook, stirring often for a further 2 minutes.
Add the diced tomatoes and a pinch of salt. Cook for 8 to 10 minutes, stirring regularly or until they have softened and broken down.
Add the chilli powder, ground coriander, turmeric, ground cumin, and the paprika. Stir well so the spices are fully mixed through. Cook for a 2 minutes, stirring often.
Add the marinated chicken to the pan. Stir well so each piece is coated in the masala. Let it cook for a few minutes until lighlty sealed.
Increase heat to medium high and add the water, mixing well. Bring to a simmer then reduce heat to medium low and and cook for 15 to 20 minutes, stirring occasionally, adding a little extra water if required.
Lower the heat to low and gently fold the yoghurt through. Let it cook for a few minutes to warm and slightly thicken the sauce.
Add the salt, garam masala and sugar. Stir well and cook for 1 to 2 minutes so the flavours come together.
Crush the dried fenugreek leaves between your fingers and stir it in along with the coriander. If the sauce is thinner than you like, simmer uncovered for a few minutes until it thickens. Garnish with fresh coriander and serve hot with cooked basmati rice and your choice of bread.