Preheat the oven to 350°F. Spray a 9×13 baking dish with non-stick spray, set aside.
Melt butter in a large sauce pan over medium-high heat. Add the serrano and jalapeño peppers and sauté until soft, about 3 minutes. Add the garlic, cooking for 30 seconds more.
Stir in the flour and let cook for 2 minutes. Slowly whisk in the chicken broth until smooth and bring mixture back to a low boil.
Stir in the sour cream, salsa, cumin, salt, garlic powder, white pepper, cayenne and cilantro until the sauce is smooth. Remove from heat. I recommend tasting the sauce now to make sure it has the right amount of salt and heat for you. If you want to easily add more heat, add more cayenne pepper, to taste.
Add 1 cup of sauce to the bottom of the prepared baking dish. Add chicken, cheese, and chopped onion to the center of each tortilla and roll, placing seam-side down in the prepared baking dish. Repeat until pan is filled.
Pour the remaining sauce over the top of the enchiladas. Sprinkle the top with leftover cheese. Bake, uncovered, for 25 to 30 minutes, until the cheese is melted and sauce is bubbling. Let enchiladas rest for 5 minutes to set up, then serve immediately!
