Toast the guajillo, ancho, and pasilla chiles (if using) in a dry skillet over medium heat for 1 to 2 minutes, turning frequently, until they puff up slightly and release their aroma. Be careful not to burn them. Remove from heat and place them in a bowl with 1 cup of hot water. Let the chiles soak for at least 4 hours or until completely softened.
Meanwhile, season the chicken pieces with salt and black pepper. In a large pot or Dutch oven, heat the oil over medium heat. Sear the chicken pieces for about 5 minutes on each side, until lightly browned. Remove the chicken and set aside on a plate.
In the same pot, sauté the chopped onion, garlic cloves, and tomatoes for about 8 minutes, until everything is soft and slightly caramelized. Remove from heat and allow to cool for a couple of minutes.
In a blender, add the sautéed vegetables, softened chiles (with a bit of the soaking liquid), vinegar, oregano, and chicken broth. Blend until smooth. Strain the sauce using a fine-mesh sieve to remove any skin or seeds from the chiles and ensure a silky texture.
Return the strained sauce to the pot and bring to a gentle simmer. Add the seared chicken pieces and bay leaves. Cover and cook over low heat for 25 to 30 minutes, until the chicken is fully cooked and the sauce has thickened and deepened in flavor. If the sauce gets too thick, you can add a bit more broth or water to adjust the consistency.
Remove bay leaves before serving. Serve hot with a side of rice, tortillas, or sautéed vegetables.