Definitely stick with a power of 2 as a block size for optimal transfer rates. I'd guess a setting equal to the internal cache size of the drive, but that's just a gut feeling supported by nothing.
If you're serious about finding the optimal rate for a given machine, create an image of a few hundred meg from a CD or something on your drive, copy it a few times, reboot (an important step to eliminate drive caching from the equation), and then [cmd=]dd if=/path/to/filecreated.iso of=/second/drive bs=nM[/cmd] and vary n by factors of 2. Record the results and you'll soon know the optimal block size.
Note that the vfs.read_max kernel parameter can have a significant impact
on disk performance as well, which means that you should find the ideal setting for this parameter before testing the block size. Remember to use fresh image files (that haven't been read or written in the present boot) or reboot for each test to ensure consistent results.
I've often wondered what I should use as a block size when cloning drives for best performance. Unfortunately, it's not a simple answer and varies greatly with the specific hardware involved.