For USB flash drives, Ext3 is still the best choice. As much as I hate VFAT, I love my friends more.
*** recommendation below is very specific to flash drives ***
Ext2 - Yes - too old and no journaling support. It will work fine, but there is no compelling reason to stick to it.
Ext3 - No - very stable, journaling support, capacity up to 16TB, supported by all GNU/Linux distros. Ext3's journaling is not flash friendly. It helps with fast recovery though.
Ext4 - No - stable in newer kernel versions, faster file system check, improved large file performance (extent support), journaled checksums. RHEL announced stable Ext4 support only in 5.6 release. e2fsprogs is still limited to 16TB capacity. I use Ext4 with Debian distro for my laptop backup drives. It is my personal #1 choice.
XFS - No - over kill, not much portability, journaling support, up to 100TB, designed for storage servers. Red Hat revived XFS in RHEL 5.2. Most of ex-XFS developers from SGI are now with RH. It is officially recommended filesystem for servers > 16TB capacity. Fast mkfs and fsck. Excellent large file support. Linux 2.6.37/39 got some really nice xfs meta-data performance improvements.
ReiserFS - No - dead project.
VFAT - Yes - most portable across operating systems, no other good reason.
Btrfs - No - Linux's answer to ZFS. Not ready yet, but most promising.