OpenVPN will work. L2TP is perhaps slightly easier to set up on the client side, as the required functionality already exist in Windows (nothing needs to be installed), but you will need certificates at both ends unless you use the same pre-shared key for all clients (I believe the same is true for OpenVPN).
SSTP is another alternative, and one that is both supported by Windows clients and will pass through just about any firewall. I haven't tried setting up a Linux SSTP server (of which there seems to be exactly
one implementation), so I can't vouch for its stability or usability.
Whatever you choose to do, just stay away from PPTP. It has
major security issues.