Melt the butter over medium heat in a large pot. Add the onions and cook, stirring occasionally, until soft and translucent, about 5 minutes.
Add the butternut squash, sweet potatoes, chicken broth, salt, and pepper to the pot. Bring to a boil, then cover and reduce the heat to low; simmer until vegetables are very tender, about 15 minutes.
Turn off the heat. Add the diced apple and honey and purée the soup with a handheld immersion blender until very smooth and creamy.
Stir in the cinnamon, mace, nutmeg, and heavy cream. Bring to a simmer, then taste and adjust the seasoning if necessary. To thicken the soup, simmer over low heat until desired consistency is reached.
