While Windows 7's chkdsk option to locate bad sectors (/R) will be sufficient to read most of blocks [*] from a partition, and while there are utilities that re-read a whole physical disk (like mentioned HDDScan, HDD Tune, badblocks), I strongly suggest you to use utility which would re-write your physical disk (or partition) while leaving all user data intact.
For now I know only one such tool (and it's for Windows) -- it is DiskFresh:
DiskFresh is a simple yet powerful tool that can refresh your hard
disk signal without changing its data by reading and writing each
sector and hence making your disk more reliable for storage. It also
informs you if there are any damaged/bad sectors so you know the right
time to replace your disk. The best part is, unlike other tools it
does all this when Windows is running and it does not interfere with
the speed of your work at all.
Main Features
- A very simple interface with an extremely powerful engine.
- Can refresh individual partitions or entire physical drive.
- Can also refresh only the selected area of the disk.
- Can work in read-only mode too so as to just inform about bad sectors.
- Supports command line for advanced usage.
- Can refresh system drive while Windows is running.
...
DiskFresh is compatible with Windows XP/2003/Vista/2008/7/8/2012
including 64 bit versions. It provides native support for 64 bit
versions.
And it's freeware:
Free for private and non-commercial use only. (Can use for test
purpose before buying commercial license).
Found today, haven't tested yet. Quoting the review:
In order to keep the data signal from fading, you need to re-write the
data. This is often known as “hard disk maintenance”, and should be
done 3 or 4 times a year.
While it does not prevent data from being corrupted or deleted, it can
go a long way towards ensuring that the magnetic signal does not fade
away completely. The way it works is to read every sector of the
drive, and then re-write the data found there, provided the drive
reported no errors. If this is done on a regular basis, the magnetic
signal of every part of the drive will be refreshed long before the
signal fades or becomes ambiguous.
This technique also gives the drive controller the opportunity to
decide whether to retire any sectors that are becoming too unreliable,
before any important data is lost. DiskFresh is not the first program
to do this, but it is the first program for the PC that allows you to
continue to use the drive while the refresh is being performed.
I find this argument very logical.
So in general my answer is no, using chkdsk isn't sufficient.
[*] Except for volume slack, partition slack or filesystem slack -- see Figure 1 in Data Hiding Tactics for Windows and Unix File Systems (there is some uncertainty about these terms).
... Plus except some parts of MBR, Boot Sector(s) and maybe some metadata from FAT/NTFS structures (I'm not sure about the latter).