1. Make the ginger-garlic paste, Throw the garlic, ginger and vegetable oil in a mini food processor and let it go until it forms a semi-smooth paste. There will still be tiny little pieces in there, but overall it should resemble a paste.
2. Save what you don't use in a small glass jar. It should last in the fridge for 2-3 weeks. It's a delicious addition to marinades, pasta sauces, stir fry sauces, slow-cooker recipes, gravy, etc. We always had a jar of this stuff in our fridge growing up.
3. For the marinade, in a large bowl, mix together the marinade ingredients. Add the chicken and toss to coat. Marinate at least 30 minutes, or in the refrigerator up to overnight.
4. When you're ready to make the curry, place a large skillet over medium heat and add the olive oil and butter. When the butter has melted, add the ginger-garlic paste and serrano peppers. Saute until lightly browned around the edges. Add the tomato puree and cook until the tomato has darkened in colour, about 3 minutes. Add the garam masala and the paprika and saute for about 1 minute to draw out their flavours.
5. Add the tomatoes, salt and 230ml water. Bring to a boil, turn down to a simmer and cook until thickened, about 20 minutes. You may need more water depending on how much liquid the tomatoes give off.
6. Meanwhile, fire up your griddle. When it is nice and hot, lightly brush it with oil. Place the chicken on the griddle, shaking off some of the excess marinade. Cook until it's charred, about 2 minutes on each side (don't worry that the chicken will still be a little uncooked, it finishes cooking in the sauce).
7. Pour the sauce into a blender or food processor, or use an immersion blender, and process until smooth. Pour back into the skillet and bring back up to a boil. Add the chicken and fenugreek leaves, if using. Take the heat down to a simmer and cook for about 10 minutes. Add the cream and stir through.
8. Garnish with minced fresh coriander and serve over rice, with naan or a crusty piece of bread.