Cook the vegetables: Heat 1 tablespoon of olive oil in a large pot or Dutch oven over medium heat. Add the chopped onions and cook for 4–5 minutes, stirring often, until soft and translucent. Stir in the carrots, celery, and sweet potatoes. Cover and cook for 10–15 minutes, stirring occasionally, until the vegetables begin to soften.
Add the aromatics and squash: Once the root vegetables have softened slightly, add the garlic and ginger. Sauté for 1 minute until fragrant, then stir in the diced apples and cubed butternut squash. Mix well to combine.
Simmer: Pour in the broth (or water) and bring the mixture to a boil. Once boiling, reduce the heat to low, cover, and let the soup simmer for about 30 minutes, or until all the vegetables are soft and tender.
Blend the soup: Remove the pot from heat. Using an immersion blender (or working in batches with a regular high-speed blender), blend the soup until completely smooth. If using a countertop blender, fill it only halfway and vent the lid to avoid steam buildup. Transfer blended soup to a clean pot as you go.
Season to taste: Turn the pot with your pureed soup on low heat. Stir in the 1/2 cup half-and-half and season with salt, pepper, and additional cream to taste. Stir often to prevent soup from burning.
Season and serve: Return the pureed soup to low heat. Season with salt and pepper to taste. Ladle the soup into bowls and top with your favorites—homemade croutons, toasted seeds, fresh herbs, cheese, bacon bits, or a sprinkle of pomegranate arils.