Preheat the oven to 375 degrees F.
Remove 2 cups of the broccoli florets, cut in half, drizzle with olive oil and sprinkle with salt and pepper. Place on a baking sheet cut-side down and bake until the florets begin to crisp and turn slightly brown, about 20 minutes.
Meanwhile, melt the butter in a pot over medium heat. Add the onions and cook until softened, 3 to 4 minutes. Sprinkle the flour on top. Stir to combine and cook until the flour is absorbed and smells lightly toasted, 1 minute or so. Add the milk and half-and half. Add the nutmeg, then the broccoli, a small dash of salt and plenty of black pepper. Cover the pot and reduce the heat to low. Simmer until the broccoli is tender, 20 to 30 minutes. Stir in the cheese and allow to melt.
Taste and season with salt and pepper as needed. Serve the soup as is, mash with a potato masher to break up the broccoli a bit, or transfer to a blender in two batches and puree completely. (If you puree in a blender, return the soup to the heat to heat back up. Splash in some chicken broth if needed for thinning.) Garnish with the toasted broccoli or grated cheese and serve.