Users need to find that your product gets more valuable to them over time or they’ll find something else that does. The more a user can invest in your product, the less likely they will be to switch. You can achieve this by adding features regularly so users find your product more and more useful or you can allow users to add data (photos/emails/friends/tags) to your product. If you can use this information to personalize their experience and give them status, it creates a powerful incentive to stay with you. This is one of the reasons a strong community is such a valuable asset to a web site.

There’s got to be a reason to have a community though and your product has to provide some inherent initial value (even before users have gotten sucked in) for users to even consider using it in the first place.