Yes, raspbian and any remotely normal distro will support USB and USB drives out of the box. You may want to know about the "verified peripherals" hardware page, although I do not think USB hard drives are discussed there since usb storage today is a universal standard (any normal drive should work). The same is true of USB flash drives (I've never seen or heard of one not work on linux).
However, the usb ports on the pi only deliver 140 mA instead of a standard 500. This means you either need a self-powered usb drive (ie, one with an AC plug of its own) or a powered usb hub (lots of discussion of that on the peripherals page) to use with it.
WRT SD cards and degradation, I've done some reading about this; decent quality SD cards use wear leveling to prolong their life, meaning they attempt to use all the space evenly as things are added and deleted, rather than the same blocks over and over. So, if you get an SD card that is bigger than what you need, and expand your filesystem image to fill all of it (I'm presuming the wear leveling does not cross partition boundaries...) it will last much longer. In general filesystems also perform better when they have lots of free space. Storage is cheap -- why not keep the SD card primary partition usage < 50%? <30%? Why not?
If you keep hefty media files on a separate USB drive, a pi centric install probably won't exceed 4 or 5 GB (the base images are < 2) and could easily be half that. The amount of writing to that partition for normal operation is pretty minimal; if you just leave it on all the time and use it for various sundry things (media player, file server, LAN drone...) probably a few MB daily. I'll be generous -- after most stuff is installed, say it averages out to 25 MB/day over time because occasionally there's something big (but in general this is space which does not accumulate, it is just prone to daily change, eg, log files, user state stuff, etc) and this superuser post is correct that SD space can be written to 100 000 times before it wears out, then if you have a 4 GB system on 16 GB SD card with wear leveling:
16 GB - 4 GB static data = 12 GB free space
12 GB / 25 MB ~= 491
It will take 491 days before all that space has been written to even once. But remember, this can only be repeated 100 000 times...
I see a lot of people on here worried about SD card lifetimes, but I still haven't seen one actually report having worn one out. Not to say it hasn't or won't happen, but if you keep your stuff backed up (it is easy to mirror a 4 GB install to a hard drive), which you would be stupid to not do anyway, then who cares how long it is going to last? Maybe in 100000 * 491 / 365 ~= 130 000 years you will need to dish out $20 for a replacement card (not taking inflation into account, lol).
Perhaps my math is a bit optimal there but even if I am off by a factor of 50000 (or you are just busy 10 hours a day writing and erasing MB of data on the card), then don't worry. It should still last a few years.
I did not discuss swap space; a busy machine that is constantly re-writing swap on an SD card will wear space out. Still, even if it writes the whole swap 100 times a day on average, you'd still have 3 years. And most people, I think, do not need to use swap on the card at all (raspbian by default uses a compressed swap in RAM).
From what you said about your needs ("personal server") I'd start with just a 16 GB SD card and a USB stick of some appropriate size.