Melt the butter in a 10 inch skillet; add potato and onion. Cook over medium heat, stirring occasionally, 20 minutes or until the vegetables are tender and golden brown. Add ham (or bacon), and cook 5 minutes, stirring frequently. Sprinkle with parsley.
Combine eggs, salt, pepper, and half-and-half in a large bowl, beating with a wire whisk until blended. Pour the egg mixture over the potato mixture. Cover and cook over low heat 10 minutes or until almost set.
Gently lift the edges of the omelet with a spatula, and tilt pan so that the uncooked portion flows underneath. Sprinkle with cheese; cover and cook until cheese melts. To serve, cut omelet into wedges.