Here's how we do it (and i'm a former SFDC marketing employee, so heavy influence from my days there)
Lead source is a one time only field. It's how they originally came into the system. If it's List Purchase, then so be it.
Other examples are Web Referral (for inbound web leads, form fills, etc), Events, Paid Pipeline (for 3rd party form fills, etc), Partner, etc...
Then, we have a Lead Source Detail field that is a free form field to describe more detail about the source (e.g. what list was purchased, what event, what paid pipeline program, etc)
Then, it gets fun.
We have 'Lead Source - Current' field that changes everytime they come back into the system... shows their last activity.
we also have a system in place that tracks what happens when someone goes dark for 30+ days and then comes back. We don't change the Lead Source, but we instead create a new 'Lead Source - A" and then B, etc... for after every 30 day pause.
But to answer your question, a webinar isn't a source, it's something that a person wants to go to. That's not the source of your lead (unless it was some 3rd party form fill). source is a basic, high level field that should be kept as such... then create fields to dig down into the details...