A coworker came to me yesterday with a frustrating question - why can't non-system adminstrator users see a new Visualforce page that had just been created? Instead they see the "Insufficient Privileges" error. I remembered struggling with the exact same problem when I first started working with Visualforce. The answer is available in the Visualforce discussion boards, but is difficult to find. So, here is a quick summary:

Access to Visualforce pages and Apex classes is determined by user profile. There are two ways to change the access levels.

1 - To view or change the access levels for a single profile, go to the view screen of the profile and scroll down to find the following two related lists: Enable Apex Class Access and Enable Visualforce Page Access.

2 - Or, set the access level for multiple profiles by going to the Apex class and Visualforce page lists in Setup. Click the Security link beside each class or page name and select the profiles that need access.