In a large skillet, melt 1 tbsp butter over medium heat and saute onion, mushrooms, bell pepper and ham for 5 minutes, or until onion has softened, stirring occasionally.
Meanwhile, whisk eggs in a large bowl; then whisk in the cheese, half the parsley, the salt and pepper and the cooked onion mixture.
Cut cooked spaghetti into 2-inch lengths and stir into egg mixture.
In the same skillet you used to cook onions etc, melt the remaining 1 tbsp of butter over medium heat; try to coat the sides as well as the bottom.
Pour in egg mixture and cook, without stirring, for 3 to 5 minutes, or until the bottom is golden and most of the mixture is set.
Now carefully invert frittata onto a plate, then slide back into skillet, cooked side up.
Cook for 3 to 5 minutes longer, or until golden on the bottom.
Garnish with remaining parsley and serve, cut in wedges; just as good warm as hot.
For Vegetarian omit the ham.