Use a fork to prick the chicken breasts all over on both sides.
In a small bowl, whisk together the yogurt, 1 tablespoon canola oil, lime juice, and garlic. Add the chicken, and rub the marinade over the meat. Set the chicken aside while you make the sauce.
In a small bowl, whisk together the coriander, cumin, cardamom, nutmeg, paprika, cayenne, and grated ginger. In a heavy pot or sauté pan over moderately high heat, melt the butter. Add the onion and sauté, stirring occasionally, until light brown and caramelized, about 5 minutes. Reduce the heat to moderate then stir in the spice and ginger mixture. Add the tomato purée, water, heavy cream, and salt, and bring the sauce to a boil. Reduce the heat to gently simmer the sauce, uncovered, until thickened slightly, about 10 minutes.
Heat a large skillet over moderately high heat until very hot and add ½ tablespoon of canola oil. Working in two batches, cook the chicken breasts, turning them a few times until just cooked through and browned well on both sides, 6 to 8 minutes total. Transfer the chicken as cooked to a cutting board. Wipe the griddle or skillet clean with a paper towel and cook the remaining chicken, adding the remaining ½ tablespoon canola oil between batches.
When all the chicken is cooked, cut it into 1½-inch pieces. Add the chicken to the simmering sauce and continue to gently simmer it, stirring occasionally, for 5 minutes. Remove the pan from the heat, stir in the black pepper and chopped cilantro, and season with salt.
Transfer the chicken to a serving dish and garnish with additional cilantro sprigs. Serve with naan, Basmati rice and raita.
Recipe by Columbine Kitchen at https://columbinekitchen.com/?p=1870