One of my favorite Terminal Server performance enhancing products is TScale, by RTO Software. (Also licensed to Wyse and sold as "Expedian.") This software is loaded onto a Terminal Server (or Citrix MetaFrame server or New Moon Canaveral iQ Server). It optimizes the memory utilization of a server, allowing it to support about 20 to 30% more users. Specifically, TScale watches a server during the day. At night, it applies optimizations that affect how applications use the page file.
A lot of people say to me "Why don't you just buy more memory? With TScale costing about $1,000 per server, why not just buy a few more gigs of RAM for half that cost and forget TScale." In the real world, TScale can allow you to put more users on a server than any amount of memory would. The (simplified) reason for this lies with the architecture of Windows. A Windows application--whether it has 64MB or 64GB of memory--is limited to only 2GB of system memory. Since Windows wasn't really designed back in the day to be a Terminal Server, all users applications must basically share the same 2GB of system memory. Adding more physical memory to a server does not increase this limit.
While the exact details of the optimizations that TScale applies are a trade secret of RTO, we do know that it affects how the system mode portion of applications are paged to disk. This leads to a much more efficient use of the page file, which means that the processor can spend less time paging and more time servicing users (i.e. more users).
One interesting side note is that after applying TScale optimizations, you will probably notice that your Performance Monitor processor utilization counters actually increase! Have no fear, however, as this is not a bad thing. An often forgotten fact about the Processor Utilization counter is that it only shows the utilization of user-mode processes, not kernel processes. This means that all the processor time that TScale saves (which are all kernel-mode processes) don't actually show up when looking at overall utilization. The result of applying TScale is that your processor runs more efficiently and has more free time to support more users (in user-mode), which means that the user-more processor utilization (i.e. the Processor Utilization counter) will be higher than without TScale.