If using fresh broccoli, chop into florets and peel/dice the stems. For frozen broccoli, no prep is needed.
Place the broccoli in a large pot and cover with water. Add a pinch of salt to enhance flavor.
Bring the water to a boil over medium-high heat. Cook the broccoli until tender, about 8-10 minutes for fresh or 5-7 minutes for frozen.
Strain the water from the pot and set the broccoli aside to cool slightly.
Add the cooked broccoli and chicken stock to a blender.
Blend until smooth and creamy. For a chunkier texture, pulse the blender a few times instead of blending fully.
Set the blended broccoli mixture aside.
In a large saucepan, melt butter over medium-low heat.
Once melted, sprinkle in gluten-free flour. Whisk continuously for 1-2 minutes to form a smooth roux and cook out the raw flour taste.
Gradually pour in whole milk and heavy cream into the flour mixture, whisking constantly to prevent lumps.
Bring the mixture to a gentle simmer and continue whisking until it thickens slightly, about 3-5 minutes.
Slowly pour the broccoli mixture into the saucepan with the cream base.
Whisk to combine thoroughly.
Add grated parmesan cheese and grated Romano cheese to the pot.
Season with salt and freshly cracked black pepper to taste.
Stir over medium heat until the cheese has fully melted and the soup is creamy.
Reduce the heat to low and let the soup simmer for 10-15 minutes to allow the flavors to meld together. Stir occasionally to prevent sticking.
Ladle the cozy soup into bowls and serve hot. Pair with hearty roasted meat for a complete meal, or keep it simple with fresh gluten-free bread and additional cheese on the side.