Melt butter in a heavy chef's casserole or a large pot over medium-low heat. Stir in onions. Cover and cook until onions are very tender but not brown, stirring occasionally, about 1 hour. Add wine. Cover and cook until liquid has evaporated and onions are pale golden, stirring occasionally, about 30 minutes. Add broth or water. Bring to boil over medium-high heat. Reduce heat to medium and simmer until flavors blend, about 15 minutes. Season soup to taste with salt and pepper.
DO-AHEAD TIP: Soup can be made 1 day ahead. Cool. Cover and refrigerate. Rewarm before continuing.