Melt the butter in a large pot and add the chicken and onion.
Grind in some salt and black pepper and saute for 4 to 5 minutes or until the chicken is golden.
Add the garlic and saute for another 2 minutes.
Add the flour and cook, stirring all the time, for a minute.
Pour in the chicken broth slowly and then the milk.
Stir in the green enchilada sauce, chilies, cumin, oregano, and beans.
Bring the soup to a boil and then turn down the heat and simmer for 10 minutes, stirring occasionally.
Take the pot off the burner and stir in half the cheese until smooth.
Add the remaining cheese and serve or let the soup sit for 15 minutes to thicken.
Serve with your preferred toppings.