Filling: Grind the cheese in a grinder or food processor. Separately, grind the potatoes. (You can grate if you don't have a grinder.) Set aside.
Heat the oil in a large frypan then add the mushrooms and onions. Cook until soft; about 15 minutes.
Combine the cheese, potatoes, mushroom-onion mixture, sour cream, salt and pepper in a large bowl. Mix well and set aside.
Dough: Place the flour on a clean work surface and make a well in the centre. Crack both eggs into the well. Add the butter and a little bit of the warm water. Mix with your hands, gradually adding more warm water as you go. Mix and knead the dough, adding more flour to the work surface as needed. The dough should be soft and smooth.
Cut off a quarter of the dough. Flour your work surface and roll the piece of dough out to a 3mm thickness. Using a cutter or a drinking glass, cut out circles from the dough, saving the excess for your next batch.
Place a spoonful of filling in the centre of a circle. Fold the circle over to create a half-moon, then pinch the edges together to seal. Repeat with the remaining dough and filling.
To Cook: Bring 3 litres of salted water to the boil. Add the dumplings 20 at a time and cook for 10 to 15 minutes or until they float to the top. Spoon the dumplings into a strainer to drain. Repeat with the remaining dumplings.
To Serve: Place the pierogi on a serving plate and garnish with fried onions and parsley sprigs, or sour cream and melted butter, or bits of fried bacon.