Bring a large pot of salted water to a boil. Add potatoes and cook until tender but still firm, about 5 minutes. Drain and set aside to cool. Meanwhile preheat oven to 350 Degrees.
In a cast iron skillet heat oil over meium heat. Add onions and cook slowly, stirring occasionally until onions are soft.
Stir in eggs, potatoes, ham and salt/pepper. Cook until eggs are firm on the bottom, about 5 minutes. Top frittata with shredded cheese and place in preheated oven until cheese is melted and eggs are completely firm, about 10 minutes.
You may also transfer everything over to a pie pan right before putting in oven if you do not have a cast iron pan.