Get a head start on this side dish by chopping all of the vegetables a day in advance. Store the potato cubes in water to prevent browning, and pat them dry with paper towels before adding them to the skillet so they will cook up nice and crisp.
Cook ham in a large skillet over medium, turning occasionally, until golden brown, about 10 minutes. Transfer ham to a plate lined with paper towels.
Return skillet to medium-high, and melt butter in skillet. Add potatoes, onion, and bell pepper, spreading in an even layer. Cover and cook until potatoes soften, about 8 minutes. Uncover and stir in garlic, pepper, and salt. Cook, uncovered, without stirring, 2 minutes. Stir and continue cooking in 2-minute intervals, stirring after each interval, until potatoes are golden, about 15 minutes total.
Chop cooked ham, and stir into potato mixture. Cook, stirring occasionally, until warmed and lightly browned, 2 to 3 minutes. Sprinkle with rosemary, and serve immediately.