Heat vegan butter or oil in a large soup pot placed over medium-high heat. Reduce heat to medium and add onions and garlic. Sauté for 3-4 minutes, stirring occasionally, until onions are translucent and fragrant. Add potato and broccoli (reserving about 1 cup of broccoli) to the onions and sauté another 3-4 minutes.
Add broth and bring to a low simmer. Simmer for 30 minutes, stirring occasionally, until broccoli and potatoes are tender.
While the soup is cooking, caramelize your onions (if using). To caramelize them, thinly slice the onion. Heat 1 tablespoon of olive oil in a large skillet over medium-low heat. Cook the onions slowly, stirring them every few minutes. After 10 minutes, sprinkle with a pinch of salt and continue to cook for another 5-10 minutes until onions have reduced in size and are caramel in color. Remove from heat and set aside.
Once the vegetables are tender, add the milk, vegan cheese, and nutritional yeast to your soup base. Cook until the cheese is completely melted and the soup is heated all the way through. Use an immersion blender or food processor to blend the soup until thick and creamy. Stir in reserved broccoli. Add the salt and pepper to taste. Serve immediately with caramelized onions.