In a large skillet, heat the vegetable oil over medium heat. Add the chopped onion and sauté until golden brown, about 5-7 minutes.
Stir in the minced garlic and grated ginger, cooking for an additional 1-2 minutes until fragrant.
Add the cumin, coriander, garam masala, turmeric, and chili powder to the skillet. Stir well and cook for 1 minute to toast the spices.
Pour in the crushed tomatoes and bring the mixture to a simmer. Cook for about 10 minutes, allowing the sauce to thicken slightly.
Reduce the heat to low and stir in the heavy cream. Add the chicken pieces and season with salt. Simmer for 15-20 minutes, or until the chicken is cooked through and tender.
While the chicken is cooking, warm the naan bread according to package instructions.
Serve the butter chicken hot, garnished with fresh cilantro, alongside the warm naan.