Hey Jeff,
We use the SOAP API to sync data submitted in our app's registration form to Marketo. You need to do a SOAP call to create the record then a Munchkin associateLead call to link the cookie with the new record.
It works well generally and is flexible. One thing to watch out for is we have occassionally had to troubleshoot race conditions between the two calls and sometimes the cookie not linking properly which caused us to lose web activity. We were able to resolve them though.
I also was quite interested in the server-side form post method because of it's ability to link with the cookie in one step and also simulate an actual form fill out in Marketo. I believe you would need different forms for different purposes so you can differentiate them in Marketo.
Also check out this recent thread which has some interesting technical discussion of the merits of the two approaches:
http://community.marketo.com/MarketoDiscussionDetail?id=90650000000Q1wEAAS