A pretty open question but ultimately it comes down to load, resources and application/application types.
The thing to be careful of is that the more pools you make (and you can make as many as you like!) - you will have an (kinda) instance of IIS running for each pool. We had a dedicated IIS (win2k3) server with 2Gb of memory and we wanted to isolate an errant site (we had about 40 running on this server) - so we isolated each one into it's own pool to try and track it down. We ran out of memory - well the box just became unusable due to swapping.
So, there are a couple of rules:
- Different .Net versions i.e. 1.0 vs 2.0/3/3.5 will need to run in separate spaces.
- Memory is your friend, the more the merrier.
- As delanda says - watch out for recycling (it's a property tab on the pool) - there's some silly default settings - my favourite being: recycle after 23h (or similar) - change it to as specific time, i.e. when you're not there/time of least activity.
As a rule we would always use 64-bit Windows because of the larger memory space, but you must test your application - and every component - for compatibility. The upside is you can put as much memory in as you want, as the 3/3.5Gb limit is the one you are most likely to hit with most modern apps running on Windows Server.
Also, it's worth checking out MSDN and Technet as most of this stuff is pretty well documented.