Heat 1 tablespoon butter and 1 tablespoon oil in a Dutch oven over medium heat until the butter melts.
Add onion and celery; cook, stirring occasionally, until softened, 4 to 6 minutes.
Add garlic and 1 teaspoon thyme (or parsley); cook, stirring, until fragrant, about 10 seconds.
Stir in 8 cups broccoli. Add 2 cups water and 4 cups broth; bring to a lively simmer over high heat.
Reduce heat to maintain a lively simmer and cook until very tender, about 8 minutes.
Puree the soup in batches in a blender until smooth. (Use caution when pureeing hot liquids.)
Stir in ½ cup half-and-half (if using), ½ teaspoon salt and pepper.
