Place diced potatoes in a pot of salted water and bring to a boil. Cook for 10–15 minutes, or until fork-tender. Drain and set aside.
In a large skillet, melt butter over medium heat. Add the boiled potatoes and cook for 5–7 minutes, until golden and crispy on the edges.
Stir in the chopped cooked ham or bacon, and cook for 2–3 minutes until heated through.
In a medium bowl, whisk together eggs, milk, salt, and pepper until smooth and well combined.
Pour the egg mixture over the potatoes in the skillet. Let cook for about 5 minutes, stirring gently occasionally, until eggs are scrambled and cooked through.
Sprinkle cheddar cheese evenly over the top. Cover the skillet and cook for 2–3 minutes until the cheese is fully melted.
Remove from heat. Top with chopped green onions or chives, and serve warm.