Preheat the oven to 400 degrees F.
Heat the 2 tablespoons olive oil in a large saucepan over medium high heat. Sauté the onions until they start to turn soft and translucent, about 4-5 minutes.
Stir in the garlic, 1/2 teaspoon kosher salt and 1/4 teaspoon black pepper. Continue cooking until fragrant, about 1 minute.
Add vegetable broth, water, potatoes, two-thirds of the broccoli florets and all the broccoli stems. Bring the soup to a boil, reduce heat and simmer until the broccoli stems are soft, about 25-30 minutes.
Stir in the spinach, letting it wilt.
Carefully transfer the soup in batches in a blender to puree. Return to the saucepan to reheat as necessary.
While the soup is simmering, toss the remaining broccoli florets and bread with 1 tablespoon olive oil, 1/2 teaspoon kosher salt and 1/4 teaspoon black pepper on a sheet pan. Roast until the broccoli is bright green and lightly browned at the edges and the bread is toasted, about 10-12 minutes.
Divide the soup into bowls and top with the roasted broccoli florets and croutons. Sprinkle with chopped parsley before serving.