The standard Salesforce “Lead Source” picklist is normally used in conjunction with the standard Salesforce “Campaign” lookup field when creating new leads either manually, from web-to-lead, or in bulk uploads. The “Lead Source” would be the top category like Trade Show, Web, Mass Email, etc. Then the “Campaign” lookup field can link the lead to the actual Salesforce campaign when it is created.
It is customary to hide the two fields in the web-to-lead form with pre-populated information (like Lead Source = Web & Campaign = Mass Email Feb2011) so that the information is then reportable. You would use a different form for each source and campaign combination. When creating leads manually or bulk uploading, these fields would need to be manually specified.
If you use the same Salesforce web-to-lead form on multiple pages for different campaigns, then the above model will not work. In this case you will need to use a dynamic lead source with a custom field to track the data by URL or some other means. This would need to be passed through to Salesforce by either a 3rd party provider or by code on your web page.