The explosive growth of Web-based social applications over the last 10 years has led people to engage in online communities for various purposes: to work, learn, play, share time and mementos with friends and family and engage in public action. Social Computing Applications (SCA) allow users to discuss various topics in online forums, share their thoughts in blogs, share photos, videos, bookmarks, and connect with friends through social networks. Yet, the design of successful social applications that attract and sustain active contribution by their users still remains more of an art than a science. My research over the last 10 years has been based on the hypothesis that it is possible to incorporate mechanisms and tools in the design of the social application that can motivate users to participate, and more generally, to change their behavior in a desirable way, which is beneficial for the community. Since different people are motivated by different things, it can be expected that personalizing the incentives and the way the rewards are presented to the individual, would be beneficial. Also since communities have different needs in different phases of their existence, it is necessary to model the changing needs of communities and adapt the incentive mechanisms accordingly, to attract the kind of contributions that are beneficial. Therefore User and Group (Community) Modeling is an important area in the design of incentive mechanisms. This paper presents an overview of different approaches to motivate users to participate. These approaches are based on various theories from the area of social psychology and behavioral economics and involve rewards mechanisms, reputation, open group user modeling, and social visualization. Future trends are outlined towards convergence with the areas of persuasive systems design, adaptive/personalized systems, and intelligent social learning environments.