Slice the onions thinly and put into a large skillet over medium heat. Cook covered for about 20 minutes until they're nearly dry, stirring every five minutes or so.
Stir in the butter, salt & pepper and turn heat to medium-low. Cook uncovered for a long time, until the onions have reached your desired consistency, flavor and color.
Stir only occasionally. The goal here is to stir just enough to let the color build up evenly: not so much that they never caramelize or so little that they burn. I cooked mine about 40 minutes more in this step, stirring every 8-10 minute or so.
When they're done, add more salt if needed. Serve hot, warm or room temperature.