In a large bowl, combine yogurt, lemon juice, garam masala, curry powder, ginger, garlic and cayenne pepper; whisk until well blended. Add chicken and stir until well coated. Cover and refrigerate overnight or up to 24 hours.
In a large deep skillet over medium-high heat, add ghee. When hot, add onion and sauté until translucent. Add garlic and sauté for 1 minute. Add coated chicken and the marinade; stir quickly to prevent from sticking. Add garam masala, curry powder and mild paprika. Stir until chicken pieces turn white, about 3 minutes.
Add tomato soup, brown sugar, salt and cayenne pepper. Decrease heat to low and simmer for 20 minutes. Taste and adjust seasoning if needed. Couple minutes before cooking time is up, stir in butter until melted.
Add cream, stir and bring heat to medium. Cook for another 5 minutes for a thicker sauce. Remove from heat and spoon butter chicken beside rice. Sprinkle cilantro over and serve along with naan bread. Makes 4 servings.