Lightly steam the broccoli until bright green but the stems are still firm. Chop up the onion and boil in salted water until tender. Drain.
Spray 9x13 or slightly smaller baking dish with Pam. Place the broccoli in the bottom and scatter the cooked onion over that.
In a saucepan melt 2 tablespoons of butter than add the flour, salt and pepper until blended. Add the milk, cook and stir over medium heat until thick and bubbly. Reduce heat to low, add the cream cheese and blend with a whisk until smooth.
Pour over broccoli and onions and sprinkle with shredded cheese. Melt remaining 2 tablespoons of butter and toss them with the breadcrumbs until combined. Top the shredded cheese with the breadcrumbs.
You can cover and chill until you are ready to bake this dish or bake uncovered immediately at 350 degrees for 30 minutes.