Hi Vanessa,
First off, really awesome question, I definitely had to give this one some thought! I would do both...
You're right about there being pros and cons, but if it were me I would create a dedicated landing page for each contest then 301 them to the main /contest page after it was over.
The reason for my preference is because you may be more likely to earn certain links from certain places if you have a very specific landing URL vs. a generic one. I know you mentioned changing the "catch all" page each time, but you lose the ability to change the URL in that scenario. If it's always going to remain /contest, this might be a turnoff (albeit very slight) to someone that might have otherwise linked to you if it was /unique-content-title instead. Not to mention, if there are any semi-shady domains that end up linking to this unique page, the URL specifically is another signal that might reinforce the idea of "Don't-penalize-me-because-their-spammy-site-is-linking-to-me-I'm-just-running-a-contest" to the engines because of its onpage relevance (this also assumes it's a relevant spammy site linking to you in the first place).
All that being said, you would lose about 10% of link equity anyway by 301ing the unique link every time, and the scenario of getting one bad link that ends up hurting you is unlikely, so it really could go either way. This decision might also be swayed by how hard it is to get something redirected in the first place. If you're in a "typical" corporate environment, it may be an act of congress to get a 301 pushed through instead of just changing the body content of an existing page.
Hopefully that helped Vanessa and didn't just generate more questions...