-
That's pretty much my approach although it helps when you cut a piece of plasterboard out of a wall to keep it for the cover up, then you can use a batten behind the plasterboard and screw the piece you cut out to it. If you use a hole saw then its really easy. Sometimes you need plasterboard tape for the edges, there are some finer scrims available. I have started painting all these repairs with Gardz from Zinsser, just ensures that you will get a good paint finish.
I wouldn't touch the expanding foam with a barge pole. One of the least forgiving methods and it can expand in walls creating all kinds of problems.
Got a picture? Personally, I'd probably screw a square of plasterboard in the hole so its sitting just below flush, then fill over that with toupret TX 110 - one fill to get the gaps mostly filled, and a second to get it level and neat. You can bevel the edges to make filling easier. Putting a watered down mix of PVA on the plasterboard in the hole and on any exposed edges where you've cut the bevel will help prevent cracking too.
@Airhead will likely have a more refined method though ;)