Melt butter in a large saucepan over low heat; stir in onion and leek. Cover and cook 20 minutes. Stir in potato; cover and cook 15 minutes. Stir in broth, salt, and pepper; bring to a boil. Reduce heat, and simmer 30 minutes or until potato is tender. Remove from heat, and cool slightly.
Process soup in batches in a blender until smooth, stopping to scrape down sides; return to saucepan, and cook over medium heat until thoroughly heated. Serve with desired toppings.