In a large bowl, stir together the yogurt, ginger, garlic, lemon juice, and spices until smooth. Add in the chicken pieces and mix until well incorporated. Skewer the chicken pieces evenly between the wooden skewers, placing on a baking sheet or platter. Cover and refrigerate for at least 4 hours or overnight.
To make the sauce, set a saucepan over medium heat with the butter. Once melted through, add the onion, ginger and garlic. Cook until softened and just beginning to brown, about 3 to 5 minutes. Add the spices and tomato paste and cook for about 1 minute to develop their flavors. Stir in the lemon juice and reduce the heat to low. Cover and simmer, stirring often, until the sauce has thickened and developed a deep color, about 10 minutes. Stir in the heavy cream and keep warm.
Preheat an outdoor grill or stovetop grill pan over medium-high heat. Grease liberally and then lay the skewers on. Cook for about 4 minutes on the first side. Flip over and then begin basting with the sauce. Continue to flip and baste the skewers until the chicken is cooked through, about 10 minutes. Transfer to a platter and let rest for about 5 minutes before serving.
Rewarm the sauce on the stovetop and serve on the side. Garnish the skewers with fresh cilantro and serve with basmati rice and/or naan.