For the chicken: Whisk together the yogurt, ginger, garlic, garam masala, paprika, turmeric and salt in a large bowl until smooth. Add the chicken and toss to coat. Marinate for at least 30 minutes or up to 2 hours in the refrigerator.
Preheat the broiler. Line a baking sheet with aluminum foil. Drizzle the foil with canola oil. Remove the chicken from the marinade and spread over the baking sheet. Broil, turning the chicken once, until browned and just cooked through, 7 to 8 minutes.
Meanwhile, for the masala sauce: Heat a medium Dutch oven over medium heat. Add the vegetable oil. When the oil is hot, add the onions and bell pepper and cook, stirring occasionally, until crisp-tender, about 4 minutes. Add the ginger and garlic and cook until sizzling, about 1 minute. Add the garam masala and cayenne and stir to distribute the spices. Add the tomato puree and 1/2 cup water. Bring to a simmer and cook until thickened, 3 to 4 minutes.
Add the cream and chicken and simmer until smooth and creamy, 2 to 3 minutes. Stir in the fenugreek leaves and season with salt and pepper Garnish with cilantro and serve with rice.