In a large bowl, combine yogurt, lemon juice, cumin, coriander, garam masala, turmeric, paprika, salt, and black pepper. Add chicken pieces, mix well, and marinate for at least 1 hour (or overnight in the refrigerator for best flavor).
In a large skillet, melt 2 tablespoons of butter over medium heat. Add chopped onion and sauté until translucent, about 5 minutes. Add 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.
Stir in the tomato sauce and bring to a simmer. Reduce heat to low and cook for 15 minutes, stirring occasionally.
Add heavy cream and remaining 2 tablespoons of butter, stirring until well combined. Simmer for an additional 5 minutes. Garnish with chopped cilantro before serving.
For the garlic naan, in a bowl, mix flour, baking powder, and salt. Add yogurt and warm water, mixing until a dough forms. Knead for about 5 minutes until smooth. Cover and let rest for 30 minutes.
Divide the dough into 4 equal pieces and roll each into an oval shape. Heat a skillet over medium-high heat and cook each naan for 2-3 minutes on each side until puffed and golden. Brush with melted butter mixed with minced garlic and sprinkle with parsley.
Serve the butter chicken with warm garlic naan.