We use 6 different forms for resource downloads, demo requests, newsletter subscriptions and webinar registrations, plus a couple of different sizes.
The down-side of multiple forms is that if you need to add a field, make a field required, update a picklist (e.g. Industry, etc.), you have to do it in multiple forms (perhaps dozens or hundreds). There isn't a big advantage to having multiple forms as long as you have a way to uniquely identify a form's context (e.g. specific collateral request, webinar registration, etc.), which you can easily do by its presence on a specific Marketo landing page. If the form is not on a Marketo landing page, and you display it via an iframe statement, you would just add a unique querystring parameter (e.g. ID=123) to the iframe statement and read it into a hidden field on the form. My non-technical staff does this all the time. Alternately you can have your webmaster add a field to the page setup in your CMS into which you would add the unique parameter if you want a form displayed and he would program your CMS to add that parameter to the iframe statement querystring for you.