Cook onion, garlic, and bay leaf in butter and 1/2 tablespoon oil with 1/8 teaspoon salt in a 12-inch heavy skillet over medium heat, stirring occasionally, until onion is beginning to brown, about 10 minutes. Transfer to a plate.
Pat chicken dry and season with 1 teaspoon salt. Brown chicken in remaining tablespoon oil in 2 batches, 5 to 6 minutes per batch, transferring to a plate as browned.
Discard all but 2 tablespoons fat from skillet, then stir in chile powder and onion mixture and cook, stirring, 1 minute. Stir in water and bring to a simmer, scraping up brown bits.
Add chicken and cook, covered, over low heat, turning chicken once, until just cooked through, 25 to 30 minutes. Transfer chicken and onions with a slotted spoon to a platter. Skim off and discard fat from sauce, then boil until slightly thickened.Stir in lime juice and cilantro and spoon sauce over chicken.