I have formatted a sd card ext3 for some test but I would like to to reformat to vfat. I have used linux to reformat using mkfs.vfat but still can't read it in windows. The next thing I was going to try was to dd from a good SD card but wanted to see if anyone else had a good idea.
The easiest thing you can do is simply download and use Gparted either within your current Linux environment or as a live cd from here. Gparted uses Vfat in order to do fat related activites and it has a good UI to make it easy.
Edit - also a little confused upon re-reading, Vfat is a general name for fat16 where as vfat is a subsystem (or program... not sure on terminology) in linux to interact with Fat based operating systems. Either way, Gparted should be able to format in fat16 or fat32.