Trying to open some pages in a SharePoint WCM site gave a 404 error.
A quick Google search led to this explanation but this was not the exact issue for me. In my case there was a reference to a user control .ascx file in the page layout that had not been deployed to the bin folder of the web application. Once this resource was deployed to the path the page layout expected to see it in the page loaded without a problem.
Update - another reason for this error is if your page layout has become customized. This will happen if you edit the page layout using SharePoint Designer.