Melt the butter in a large soup pot. Add onions, carrots, and celery and saute over medium heat until tender. Add garlic and cook 1 or 2 additional minutes. Add chicken broth and potatoes, bring to a boil, and cook until potatoes are tender. Mix flour with water, add, and simmer until soup is slightly thickened. Add milk and broccoli and cook until broccoli is just tender and soup is heated through. Stir in cheese, allow to melt, and serve.