<p>On a website, everything is tagged with keywords assigned by the staff (it's not a community driven site, due to its nature). I am able to determine which tags a user is most active in (or, what tags they view the most). However, I'm not sure how to choose the list. A few options present themselves, but they don't seem right to me.</p>

<ul>
<li>Take the top n (or m &lt; n if they have fewer than n viewed tags) tags</li>
<li>Take the top n tags where n is a percentage of the total tags viewed</li>
<li>Take the top n tags with m views where n and m are percentages of total tags viewed and total page views</li>
<li>Take all of the tags, regardless of views</li>
</ul>

<p>The goal is to identify what is most interesting to the user and show them other things that they might be interested in, with respect to the tags that are assigned to the content.</p>

You could look at machine learning algorithms to find algorithms with which to evaluate the effectiveness of your choice.
Like for instance:
http://en.wikipedia.org/wiki/Supervised_learning#Approaches_and_algorithms
Stuff like nearest neighbour and bayes could help you improve your suggestions.
This is however overkill for just suggesting "Would you like to look at this too?", but it's an interesting approach to providing better tie-ins. It would, however require some method to figure out whether or not your users value your suggestions (e.g. "I like this!"-links or log-analysis based on time spent on links, etc.)