Microsoft says that the "Spooler Service may leak private bytes as well as handles attempting to close a remote printer. If the remote procedure call (RPC) request to close a remote printer fails, the spooler service may leak an RPC binding handle, spooler handle, and a printer handle." As the RPC (Remote Procedure Call) protocol is handled by the SERVICES.EXE (and SPOOLSS.EXE service is one thread activated by SERVICES.EXE) and most of printers are LPR ports, there is a big possibility that some disconnections are causing the SPOOLSS.EXE service to hung, stopping it.
1. Check if you have logs on RPC errors
2. If you use home directory mappings. you probably have already lots of RPC trheads. Using the server to spool printing jobs loads it even more
3. A good solution is Having a Domain controller (not the Metaframe server) that handles logon, printing and home directories. The printers could be loaded to the users through logon script. No more spooling in the metaframe servers. Remember that NT 4.0 is not a "Native" multiuser OS and it offers several limitations for the environment, even on Terminal server edition.