In a large pot, melt the butter over medium-high heat. Add the garlic, onion and celery and cook for about 5 minutes until the onions are translucent. Reduce the heat to low and stir in the flour to coat the vegetables. Cook for another five minutes, stirring frequently. Turn the heat back up to high and slowly whisk in the vegetable broth, stirring constantly. Add the milk and stir to combine. Bring the soup to a boil and then reduce heat to simmer for 5 minutes, stirring often. Add the poblanos, red pepper, potatoes, and corn. Simmer uncovered for 30 minutes. Add the cayenne, salt & pepper and stir.