The IO subsystem generally deals with storage to disk. This happens when the data has to be written or read. Generally speaking you'll want to monitor the disk queue depth. I don't exactly remember the recommendations but I think it's something like 1.5 * the number of physical disks involved.
There are a few potential solutions depending on what you find.
First, get enough RAM in the server so that it can basically keep the entire DB in memory and have plenty of room to execute queries against. The less amount of time you can keep it from paging to disk the better off you are. This includes having enough RAM to keep temp tables in RAM instead of having those paged out to disk.
Second, get faster disks. 15k SCSI drives appropriately raided. You might even investigate SSD if applicable; be aware of their limitations before you do though. Put the log files on a separate disk system and, potentially, partition out the tables so that they are on different disks as well. This one can get complicated and very expensive.
Third, tune your queries to make better use of your indexes which should also help with limiting down when the server has to go to disk to pull the full records.
Finally, don't sweat it unless it's an actual problem. If your app is moving fast then find a different area to "fix" If it's an actual issue then decide if it's time to scale your server up.