1. Break off florets from broccoli. Peel and cut broccoli stalk. Set them aside in separate bowls.
2. Cook bacon until crisp. Crumble them, and set aside.
3. In a mixing bowl take broccoli florets. Drizzle 1 tablespoon of olive oil, and toss it well.
4. Season it with salt and pepper. Spread it evenly on a large rimmed baking sheet.
5. Preheat oven to 450 degree F.
6. Place baking sheet in oven and roast broccoli florets for about 5 minutes or until lightly browned. Set it aside.
7. Place a large, deep saucepan over medium flame, and heat a tablespoon of olive oil in it.
8. Drop red onion, stir occasionally and cook until softened.
9. Add broccoli stalk, potato, and chicken broth. Mix well. Bring it to a boil.
10. Reduce the heat, stir occasionally, and let it simmer for 20 minutes or until broccoli, and potatoes are tender.
11. Taste and season it with salt and pepper.
12. Into a large blender, transfer the mixture. Blend until smooth.
13. Add ½ of the roasted broccoli florets in blender and pulse a few times to separate, leaving it partially intact.
14. Into a soup bowl, ladle soup, and top it with few reserved roasted broccoli florets.
15. Sprinkle some crisp bacon, and cheese on top.