Melt butter in a large stockpot or Dutch oven over medium heat.
Add celery, carrot, and cook, stirring occasionally, until translucent, about 3-4 minutes.
Whisk in flour until lightly browned, about 1 minute.
Gradually whisk in vegetable broth, milk and heavy cream, and cook, whisking constantly, until incorporated, about 1-2 minutes.
Stir in broccoli and bring to a boil; reduce heat and simmer until broccoli is tender, about 6-8 minutes.
Puree with an immersion blender until desired consistency is reached.
Stir in cheese, a handful at a time, until smooth, about 1-2 minutes,
Season with salt and pepper, onion, garlic powder, and nutmeg.
Serve immediately.