Step 1: Melt the Butter - Place a large pot over medium heat and add the butter. Let it melt completely, but keep an eye on it so it does not start browning. You want a gentle buttery base for the onion and flour. I usually give the pot a little swirl once the butter is mostly melted so the bottom gets evenly coated.
Step 2: Soften the Onion - Add the diced onion to the melted butter and cook it for a few minutes, stirring occasionally. You are looking for the onion to soften and become slightly translucent. It does not need to brown. Keeping the onion pieces small helps them practically disappear into the finished soup while still giving the whole pot a little extra savory flavor.
Step 3: Cook the Flour - Sprinkle the flour into the pot with the butter and onion. Stir constantly as the flour absorbs the butter and begins to bubble. Give it a minute or two to cook. This helps remove the raw flour taste and creates the thickening base that will eventually give your soup that creamy, spoon coating texture.
Step 4: Add the Milk and Thicken - Slowly pour the milk into the pot while stirring. Continue stirring so the flour mixture blends smoothly into the milk rather than forming lumps. Increase the heat and bring the mixture to a boil, then reduce the heat to low. Let it simmer for a couple of minutes. You should notice the mixture beginning to thicken slightly. It does not have to look extremely thick yet because the cheese will add more body.
Step 5: Melt in the Velveeta - Add the Velveeta pieces to the pot. Keep the heat low and stir often while the cheese melts. Low heat matters here because you want the cheese to melt gently into the milk mixture instead of scorching against the bottom of the pot. As you stir, you will see the soup change from a pale milk mixture into a glossy, creamy cheese base.
Step 6: Add the Broccoli and Pepper - Stir the thawed chopped broccoli into the melted cheese mixture, then season with pepper to your taste. If you see any especially large pieces of broccoli, use your spoon to break them apart as they warm. I like having plenty of small broccoli pieces throughout the soup so you get a little in almost every bite.
Step 7: Simmer Until Creamy - Once the Velveeta has completely melted, let the soup simmer gently for about five minutes. Stir occasionally, making sure to scrape along the bottom of the pot. The broccoli will become tender and the soup will settle into that thick, creamy consistency you are looking for. Give it a taste before serving and add a little more pepper if you think it needs it.