Marinate the chicken: In a bowl, combine yogurt, garlic-ginger paste, cumin, coriander, garam masala, salt, and pepper. Add diced chicken and coat well. Cover and refrigerate for at least one hour or overnight.
Cook the chicken: Heat oil in a skillet over medium-high heat. Add marinated chicken in batches and sear until golden brown (about five minutes). Remove from skillet.
Prepare the sauce: In the same skillet, add crushed tomatoes and remaining garlic-ginger paste. Simmer for about ten minutes until thickened.
Combine chicken and sauce: Return seared chicken to the skillet, stir in heavy cream, and simmer on low heat for fifteen minutes until smooth.
Garnish and serve: Sprinkle with fresh cilantro before serving with naan or basmati rice.