It depends on who you want creating the forms.
If you want content authors or admins to be able to use a wysiwyg-like interface for creating and updating forms, then I would recommend using the Web Forms for Marketers Module that is available for Sitecore. While certainly not the panacea for allowing content authors to create forms, it is pretty robust and also very extensible.
However, if it will primarily be developers creating and maintaining the forms, then it will probably be easier for you to go with the sublayout approach.
To ctford's point, the Web Forms for Marketers Module does use it's own database for form data storage, not the typical Sitecore content databases. And you'd probably want to do something similar for your forms as well, rather than writing data back into Sitecore. But that will depend on your business requirements.