Just to update this a bit. I found the problem through using the iStat menus from iSlayer -
www.islayer.com
I had installed iStat for the first time at the same time I installed Leopard. At first I thought it might have been the iStat program itself, but it seems it's the SMART monitoring from Apple. Based on reports from other users, the SMART check seems to "take over" the drive for 5 seconds, holding up everything else.
iStat has a default setting of checking every 5 mins - and thus the problem came up a lot more. When I changed the frequency to 1 min or 15 mins, the problem changed to match. Turning off the check got rid of the problem completely.
Some people have reported the problem going away by itself after the 10.5.1 patch, others report it has continued. I don't know how often OSX does the SMART check itself normally - I know my own servers run it once a week which seems enough to me, once every 5 mins would be like running a defrag every hour - do more damage than good.
So for now I've turned it off, and try to remember to turn it back on once a week to run a couple of checks before turning it off again in iStat.
(BTW - little plug. iStat is awesome. Certainly helped me identify a few issues such as temperature and CPU loads from programs on my Mac. Certainly recommend it. And it's FREE as in beer)