Heat butter in a large sauce pan or soup pot over medium heat. Add onion and sauté until softened, about 8 - 10 minutes. Add garlic, ginger and curry powder and cook for 1 minute while constantly stirring.
Add squash, vegetable broth and apple to the stock pot. Cover and cook until the squash is soft, about 20 - 25 minutes. Add the port and turn the heat off.
Cool soup slightly; carefully puree soup with an immersion blender or in batches using a blender or food processor. Reheat the soup in the stock pot and season to taste with salt and pepper.
Ladle into soup bowls. Garnish each bowl with a dollop (or swirl) of yogurt and a pinch of cinnamon and/or cayenne pepper, if desired. Serve immediately.