Heat a large heavy-bottomed ovenproof skillet on the stove top over medium heat. Add butter and oil or bacon drippings. Once melted, swirl to combine, then remove skillet from heat and begin layering potatoes, onions and cheese into skillet, starting with potatoes and ending with cheese. Season each layer of potato and onion with a bit of salt and black pepper. Return skillet to burner, cover with lid, and reduce heat to medium low. Cook, covered, until potatoes and onions are crispy tender when tested with the tip of a sharp knife, about 25 to 30 minutes. Preheat broiler about 5 minutes before end of cooking time. Uncover skillet and sprinkle with additional cheese, if desired. Transfer skillet to broiler, and cook until top is nicely browned and bubbly. Remove from broiler and let sit for a few minutes before serving from the skillet. Serve with a dollop of sour cream, if desired.