In a large bowl, whisk together eggs, cream, Gruyere cheese, salt, and pepper until foamy. Melt butter in a cast iron pan over medium heat. Add the onion and potatoes and cook thoroughly. Pour the egg mixture over the top. Pull the edges away from the sides of the pan with a spatula so the eggs flow to the bottom of the pan. When the frittata is half set, add the ham.
Transfer the pan to the heated oven. Bake for 10 minutes until puffed and golden. Shower with grated Parmesan and serve garnished with sour cream and chives.