Unless you really need multiple versions of DB2 (V7 and v8) on the same machine, then you probably don't need multiple instances. Note that DB2 Windows does not support multiple instances on the same machine. The main reason to have multiple instances would be for testing of a new release. But better to test on another machine if possible. DB2 V8 now supports multiple fixpaks of the same version in different instances, but whether this works smoothly or not is debatable.
The number of databases is more complex. My preference is to have as few as possible, but it depends a lot on the applications that are using DB2. If the applications are completely separate and never need to access data in another database, and they used at different times (not used at the same time) then maybe have separate databases.
However, if multiple databases are running at the same time, they have separate bufferpools, which uses a lot of real memory. The ability to have large bufferpools (backed up by real memory) is the single most important performance factor in DB2.
There are also backup and restore issues since backup at the database level has advantages over backing up at the object level. There are also different performance parameters that can be set at the database level if the workloads are different.