Melt butter in a large pot over medium heat. Add onions and saute until just translucent, not browned, about 5 minutes.
Add squash and apple, then stir in chicken stock, five spice and sage. Bring mixture to a boil, then reduce heat and simmer, covered, until squash is very soft, about 30 minutes.
Puree soup using an immersion blender, or else puree in batches using a regular blender. Stir in cream, if using, and return to a simmer. Season with salt and pepper.