1. Heat cooking oil in a large saucepan over medium high heat. Saute onion until translucent. Add butter, lemon juice, ginger-garlic paste, teaspoon garam masala, chili powder, cumin and bay leaf. Cook, stirring, for 1 or 2 minutes. Add tomato puree, and cook for 2 minutes, stirring frequently. Add half-and-half and yogurt. Reduce heat to low, and simmer for 10-12 minutes, stirring frequently. Season with salt and pepper. Remove from heat and set aside.
2. Heat 1 tablespoon oil in a large heavy skillet over medium heat. Cook chicken until lightly browned,. Reduce heat, and season with 1 teaspoon garam masala. Stir in a few spoonfuls of cooked gravy, and simmer until liquid has reduced, and chicken is fully cooked. Add the remaining gravy.
3. Mix together cornstarch with water, then add it into the gravy. Cook for 5 to 10 minutes, or until thickened.
4. Serve hot with Rice or Naan and Onion salad. Enjoy!