Heat 2 tbsp butter in a large saucepan over medium high heat.
Saute the onion 4-5 minutes, add the garlic and ginger, saute 1 minute.
Stir in ¼ cup butter, lemon juice, 3 tsp garam masala, 1 tsp turmeric, ½ tsp cayenne pepper, ¼ salt, tomato sauce, tomato paste, yogurt and heavy cream.
Reduce heat to low, cover and simmer for 10-15 minutes.
While the sauce is simmering, heat the remaining 2 tbsp butter in a large skillet over medium heat, add the chicken, season with the remaining 1 tsp garam masala, ½ tsp cayenne and ¼ tsp salt, cook until lightly browned, about 10 minutes.
Add the chicken to the sauce and simmer for 5-10 minutes.