In a heavy pot over medium heat, melt the butter and olive oil.
Stir in the onion and cook until softened, approximately 4-5 minutes.
Add garlic and cook until fragrant, an additional 1 minute.
Add the broccoli cooking until bright green and softened, about 5 minutes.
Stir in the cornstarch to coat the vegetables and cook for 2-3 minutes. Then, add the garlic powder, onion powder, salt and pepper.
Add the stock and bring to a simmer until the broccoli is very tender but still green, approximately 10 minutes longer.
Using an immersion or regular blender, puree the soup. If using a regular blender, be sure to cover the lid with a towel and hold in place while stopping to remove the lid a couple times to avoid overheating.
Return the soup to pot, stir in half and half or heavy cream, cheese and lemon zest, then warm over low heat. Season with salt and pepper to taste.