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 is melted.
Add the diced onion and cook, stirring occasionally, for 4–5 minutes, until the onion begins to soften.
Add 3 teaspoons garam masala, 1 teaspoon ground ginger, and 1 teaspoon chili powder to the onions. Cook and stir for 1–2 minutes, stirring often so the spices do not burn.
Stir in the entire 6-ounce can of tomato paste and 1 cup tomato sauce. Whisk until the mixture is smooth and cook for 2 minutes.
Stir in 2 cups heavy cream until smooth, add 1 bay leaf, bring the sauce to a gentle boil, then reduce heat to a simmer and cook 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 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 browned chicken (or add the chicken to the sauce), scraping up any browned bits from the bottom of the pan. Stir to combine.
Simmer the chicken and sauce together on low to medium-low heat for 10–15 minutes, until the chicken is cooked through and the sauce has thickened slightly. Remove and discard the bay leaf.
Squeeze the juice from the ½ lime over the butter chicken, garnish with cilantro leaves, and serve.