Melt the butter in a large dutch oven or stock pot over medium heat. Once melted, add the onion and continue cooking until softened, about 3 minutes.
Add the chiles and garlic to the onions and cook for 2 minutes more, stirring often.
Rinse and sort through the beans and discard any debris. Add beans to the pot of onions along with the chicken broth.
Bring to a boil and reduce to a simmer. Cover the pan and let cook for 2 hours, checking occasionally to be sure there is still enough liquid in the pot to cook the beans. Add additional broth as needed.
After two hours, check beans for tenderness. Continue cooking until beans are as tender as you'd like. Once tender, add the shredded chicken, milk, cumin, chili powder, salt, pepper, oregano, and cayenne to the pot and stir well.
Return to a simmer and continue cooking, without the lid, until some liquid has evaporated and the chili has thickened up to your liking.
Serve topped with fresh cilantro.