In a large bowl, combine yogurt, lemon juice, cumin, coriander, garam masala, turmeric, chili powder, and salt. Add chicken pieces, mix well, and marinate for at least 1 hour, preferably overnight in the refrigerator.
In a large skillet, melt butter over medium heat. Add chopped onion and sauté until golden brown, about 5-7 minutes. Stir in garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Add the marinated chicken to the skillet, cooking until browned on all sides, about 8-10 minutes.
Pour in the tomato sauce and bring to a simmer. Cook for 10 minutes, stirring occasionally.
Reduce heat to low and stir in heavy cream and sugar. Simmer for another 10 minutes until the sauce thickens. Adjust seasoning if necessary.
For the garlic naan, in a bowl, mix flour, baking powder, and salt. Add olive oil and warm water, mixing until a dough forms. Knead for 5 minutes until smooth. Cover and let rise for 1 hour.
Preheat a skillet over medium-high heat. Divide the dough into 6 equal pieces and roll each into a flat oval. Sprinkle minced garlic on top and press lightly.
Cook each naan in the skillet for 2-3 minutes on each side until golden and puffed. Brush with melted butter after cooking.
Serve the butter chicken hot, garnished with fresh cilantro, alongside the garlic naan.