You need both a good funnel, and a message that provides value to a user. It has been crudely expressed as "do you get your user laid", less crudely as "make your user look cool". If you do this, then they'll share your service to all their friends for free. In our case, someone is proud to ride 100 miles, and they'd like to show it off. Our tool let's them do it, so they paste it around on facebook. It's all about your value prop and how someone feels sharing that with others.