Wow, those queue lengths are pretty high. What kind of drives are you using? SATA?
This is going to sound a bit old school, but besides adding some indexes to reduce the full table scans you're probably seeing, you may also want to check for fragmentation too. If you see a lot of fragmentation with your data or log files, shut down MSSQL, defrag your drives and then start it back up again.
It probably won't buy you as much as adding a few strategic indexes, but I've seen it work miracles on a few of my customers databases, giving them another year or more out of their hardware.