Firstly heat oil in a large pan over medium high heat. Add cinnamon stick, bay leaves, black peppercorns and cardamom pods and fry for 2 minutes to infuse the oil. Remove the whole spices and discard.
Add the onion to the hot oil and fry till soft and a bit golden. Add the chopped tomatoes, ginger-garlic paste and salt, and cook and stir for a few minutes till the tomatoes have softened. Add the tomato puree, chilli powder, garam masala, ground coriander and turmeric. Cook for 2 minutes, then add the chicken and stir to coat. Lower the heat and cover. Cook, stirring occasionally, for 20 minutes, adding the fenugreek during the last 5 minutes of cooking.
Garnish with the fresh green chilli and coriander just before serving.