Heat a large heavy bottomed pot over medium heat, add the peanut oil and heat through. Add the chicken and sauté until it is lightly browned on all sides, about 5 minutes.
Add the butter and allow to melt then add the onion. Cook, stirring occasionally, until the onions are soft and translucent, about 2 minutes. Add the garlic and cook, stirring occasionally, until the garlic is fragrant, about an additional 30 seconds.
Stir in the ginger, garam masala, cumin, coriander, chili powder and the bay leaf. Let cook, stirring constantly, until spices are fragrant but not burnt, about 1 minute.
Add the tomato paste and crushed tomatoes, stirring occasionally, for about 2 minutes. Reduce the heat to low and stir in the heavy cream and yogurt. Let simmer until the liquid has reduced by about a third and the chicken has completely cooked through, about 10 minutes.
In a small jar or container, combine the cornstarch and ¼ cup of cold water. Shake or whisk to mix, then slowly whisk mixture into the sauce.
Cook, stirring occasionally, until sauce has thickened, about 5 to 10 minutes. Season to taste with salt.
Serve the butter chicken hot with a side of basmati rice and naan bread.