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.
For the sauce: 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 paste and cook until the tomato has darkened in color, about 3 minutes. Add the garam masala and the paprika and saute for about 1 minute to draw out their flavors.
Add the tomatoes, salt, and 1 cup 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.
Meanwhile, fire up your grill. When it is nice and hot, lightly brush it with oil. Place the chicken on the grill, 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).
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. Garnish with minced fresh cilantro, and serve over rice, with naan, or a crusty piece of bread!
Throw the garlic, ginger, and canola 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.
Save what you don't use in a small glass jar. It should last in the fridge for 2 to 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.