Place the chicken pieces in a bowl and season with 1 teaspoon kosher salt and ½ teaspoon freshly ground black pepper. Toss to coat and set aside.
In a large, high-sided skillet or 6-quart pan, heat 1 tablespoon vegetable oil and 2 tablespoons butter over medium heat until the butter melts.
Add the diced yellow onion and cook, stirring occasionally, for 4–5 minutes until the onion softens.
Add 3 teaspoons garam masala, 1 teaspoon ground ginger, and 1 teaspoon chili powder. Cook, stirring constantly, for about 2 minutes so the spices bloom but do not burn.
Stir in the entire 6-ounce can tomato paste and 1 cup tomato sauce. Whisk until smooth and cook for 2 minutes.
Stir in 2 cups heavy cream and add 1 bay leaf. Bring the sauce to a gentle boil, then reduce heat and simmer for 5 minutes.
While the sauce simmers, heat the remaining 1 tablespoon vegetable oil and 2 tablespoons butter in a separate large skillet over medium-high heat.
Add the seasoned chicken to the hot skillet and cook, stirring occasionally, for 4–5 minutes until the chicken is lightly browned on all sides (it may not be fully cooked through).
Pour the tomato-cream sauce into the skillet with the chicken (or add the chicken to the sauce skillet), stirring to combine and scraping up any browned bits from the pan.
Simmer the combined chicken and sauce for 10–15 minutes, until the chicken is cooked through and the sauce has thickened to your liking.
Remove and discard the bay leaf. Squeeze the juice of ½ lime over the finished butter chicken, stir once, and garnish with cilantro leaves before serving.