Start by washing and peeling the potatoes, before cutting them into thin slices and set them aside.
Slice the onions and set them aside.
In a large, deep pot, add the oil and heat over medium-low heat. Add the potatoes and let cook for 5 minutes. Through this process the oil shouldn't heat up too much so that the potatoes are not being fried, but instead becoming soft, juicy, and slighly translucent.
After 5 minutes, add the onion and a little bit of salt. Stir constantly so that nothing burns and let the whole mixture continue cooking for about 10 minutes or until the potatoes are softe and slightly brown.
Remove from the heat and strain the excess oil. Set the potato mixture aside for the next step.
Add the eggs to a large bowl and beat well. Add the pepper and additional salt and beat again. Once the potatoes and onions have cooled slightly, add them to the mix and mix well.
In a medium cast iron pan, heat a tablespoon of oil over medium heat and then add half of the egg mixture and make sure it spreads to the edges. Immediately add an even layer of cheese and ham and then add the rest of the egg mixture to the top.
Lower the heat and let cook for about a minute or two before carefully flipping the omelette and allowing the other side to cook to a golden brown color. A trick for flipping it is to place a large plate on top of the pan, and flip it onto the plate, then you can carefully place it back into the pan. The omelette should cook for about 3-4 minutes on each side.
Remove from the pan and serve on a large plate. Let it cool before slicing and serving.