Heat the oil in a large pot set over medium heat. Add the leek, garlic and ginger and cook until softened, about 3 or 4 minutes. Mix in the flour and cook 2 minutes more. Very slowly stir in the stock. Mix in the remaining ingredients, except green onion. Simmer the soup until the vegetables are very tender, about 15 minutes.
Puree the soup in a blender or food processor, or in the pot with an immersion blender. Return to a simmer; adjust seasoning and thin soup with a bit more stock if too thick. Serve sprinkled with green onion.