In a large saucepan, heat the oil over high heat and cook the onion and ginger, stirring often until the onion is lightly browned, about 5 minutes . Stir in the garam masala, then put it all in a blender, add the tomato paste and chicken broth, and whir until smooth.
Put the sauce back into the pan, add the half and half, and simmer, stirring often, about 5-10 minutes until reduced to about 3 cups. Pour sauce into a bowl and set aside. Rinse the pan and reuse for the chicken.
Heat 1 Tbs of the butter over medium-high heat, sprinkle salt and pepper on the chicken pieces, then add the chicken to the pan, cooking a few minutes until the outside is no longer pink, 2-3 minutes. Pour the sauce back in and bring to a simmer. Cook for another 4-5 minutes, until the chicken is no longer pink inside. (Take a piece out and cut in half to make sure.)
Cut the remaining 3 Tbs of butter into chunks and stir in until melted. Serve over steamed rice. If you like, sprinkle with fresh chopped cilantro and a squeeze of lime.