Start by prepping all your ingredients. Chop the onions finely and keep the tomato puree and coconut milk ready. If using fresh tomatoes, blend 2-3 medium tomatoes into a smooth puree.
Heat 3-4 tbsp oil in a large pan over medium heat. Add cumin seeds and let them splutter. Then, toss in the bay leaves, cinnamon sticks, cardamoms, cloves, and peppercorns. Sauté for about 30 seconds until the spices release their aroma.
Add the finely chopped onions to the pan and cook until golden brown. Once the onions are nicely caramelized, add the ginger-garlic paste and sauté for another minute until fragrant.
Pour in the tomato puree and cook until the raw smell of tomatoes disappears about 5 minutes. Add salt to taste.
Now, lower the heat and add the Kashmiri red chilli powder, coriander powder, and turmeric powder. Stir well to combine with the onion mixture, and cook for a minute or two until you see oil on the sides.
Now, add the chicken on the bone. Mix the chicken into the sauce, making sure it's well-coated with the spice mixture, for about 5 minutes. Then add half a cup of water, cover, and cook for about 10 - 12 minutes on medium-low heat, stirring occasionally, until the chicken is fully cooked and tender.
Once the chicken is cooked, add the coconut milk and stir well. Cook for another 3-4 minutes until the sauce thickens slightly.
Once the chicken is cooked, sprinkle the garam masala powder over the curry and give it a final stir. Let it simmer for another 2 minutes.
Turn off the heat and garnish with fresh coriander leaves. Serve this delicious chicken curry with steamed rice, chapati, or naan for a comforting meal!