I feel like people vote only partly on whether they think something is good or bad; they also (or maybe mostly) vote based on whether they think something has a higher or lower score than they think it deserves. So as a post or comment's score rises, people will stop upvoting when they feel it's got enough.