Heat the oil in a heavy soup pot or Dutch oven over medium heat. Add the onion and cook, stirring, until tender, about 5 minutes.
Add the ginger and stir together until fragrant, about 1 minute.
Add the squash, sweet potatoes, regular potato, and water or stock, and bring to a simmer.
Add salt to taste, reduce the heat, cover and simmer 45 minutes, or until all of the ingredients are thoroughly tender.
Using an immersion blender, puree the soup (or you can put it through the fine blade of a food mill or use a regular blender, working in batches and placing a kitchen towel over the top to avoid splashing).
Return to the pot and stir with a whisk to even out the texture. Heat through, adjust salt and add pepper to taste.