Heat oil in a large sautè pan over medium-high heat. Add the bay leaves, cinnamon stick, and green cardamom pods to the oil and heat for a few seconds, taking care not to burn the spices.
Add sliced onions and cook until they start to turn slightly golden brown. Then, add ginger and garlic and cook for a couple of minutes to blend the flavors.
Gently add the yogurt to the pan a spoonful at a time, taking care to incorporate into mixture before adding the next spoonful. You don’t want to curdle the yogurt!
Add the chicken pieces to the pan and make sure to coat the pieces with the yogurt-spice mixture.
Cook chicken for a couple minutes, then lower the heat to medium-low, cover pan, and let simmer for about 20 minutes or so, stirring occasionally. The chicken, yogurt, and onions will all release water as they cook, but if it looks like stuff is starting to stick, add a couple spoons of water to the pan.
Once the chicken is done, the gravy should be on the thick side and somewhat reduced. If it looks too thin, just take the lid off the pan and increase the heat on the stove a bit to cook off the water.
Add salt to taste. Add a bit of lemon juice and the garam masala at the very end. Let the chicken sit for about 15 minutes to let all the flavors meld. Serve with steamed basmati rice and a salad for a simple dinner.