Heat olive oil in a heavy large skillet over medium heat. Add onions, cabbage and large pinch of salt. Cook until vegetables are deep brown, scraping bottom of pan frequently, about 40 minutes. Season with salt and pepper.
Preheat oven to 375. Steam potatoes until tender, about 20 minutes. Transfer to large bowl. Add butter and milk and mash potatoes. Season with salt and pepper. Mix 1 cup onion mixture into potatoes. Mound potato mixture in shallow casserole.
Add vinegar and broth to remaining onion mixture in skillet. Stir over high heat until liquid is almost completely evaporated, about 1 minute. Spoon onion mixture over potatoes. Bake until very hot, about 20 minutes.