You might consider, given the DreamHost Anti-spam policy and the Terms of Service, using the DreamHost Announcement lists for "mailing list sign-ups". The formmail script will not provide you with the audit trail you need to be compliant with those policies (the confirmed opt-in requirement and the date, time, email address, and IP address of the sign up and the confirmation). In fact. you can even use that Announcement list feature for your event sign-ups too! )and have a better audit trail!)
That said, the formmail script will also work fine though for your event signups (though using the announcement list "formmail style variation" will give you more information about the submission!).
Sure! You can use any html form features you wish for collecting the data, and any data not passed as on of the "required" or "defined" variables will be sent along in the email (the wiki and the formmail page explains better how all that works).
You may want to check out an html form tutorial for a better understanding of how to create a form (or even use the "form" that was created by the "generator", but link it to the DreamHost formmail in the "action" attribute of the "form" tag as instructed in the DH formmail documentation).