First, there are much better tools to clone a hd than dd. A simple file copy ( cp -a ) is a perfectly good way. If you want to keep the same fs UUID and the boot loader intact ( as well as any fragmentation present ), then clonezilla or ghost4linux are good candidates.
Because dd is a dumb animal, it wastes time copying free space, and requires that the destination be at least as large as the source, and any additional size is unused, requiring you to manually expand the fs later.
As for what block size is best, it depends on a number of factors. The largest is whether the source and destination are different partitions on the same disk, or different disks ( on different controllers ). Whether you use the direct flag is important as well. If you do not enable direct and you are copying between two disks, then very large block sizes ( above 1 MB ) actually slow things down, since the block cache will make dd wait a bit after such a large write before it can read from the source again so you don't keep both disks busy. If you are copying between two partitions on the same disk, then this delay can actually be a good thing and larger block sizes are better because there are fewer seeks.
I usually find using the direct flag with 32 or so MB block size works best going between partitions on the same disk, and 128-512k either without the direct flag, or with direct but piping one input dd to another output dd for drive to drive.