Trim broccoli and cut into 1/2-inch thick slices. Steam in salted water until tender, about 8-10 minutes. Drain and set aside.
In a large saucepan, melt butter over medium heat. Sauté onions, celery, and garlic until golden brown, about 5-7 minutes.
Gradually stir flour into the butter mixture, creating a roux. Cook for 1-2 minutes.
Slowly add milk while whisking constantly to prevent lumps.
Add chicken broth, marjoram, and thyme. Continue stirring over low heat.
Simmer until soup thickens and comes to a gentle boil, about 10 minutes.
Add steamed broccoli and season with salt and pepper to taste.
Serve hot, topped with slivered almonds, cheese, or chopped tomato as desired.