One of my Japanese dictionaries says:
下手[へた]
①(例)下手な説明。(意味)うまくできないこと。また、その人。(unskilled. someone unskilled. e.g. poor explanation)
② --省略--
苦手[にがて]
① --省略--
②(例)苦手の国語が好きになった。(意味)上手でないこと。自信がないこと。(unskilled. not confident. )
--------------------------
広辞苑 says:
へた[下手]
①物事に巧みでないこと。まずいこと。不器用なこと。また、そういう人。(例)「下手な歌」(unskilled in doing things. poor. awkward at~~. someone unskilled. )
② --省略--
にがて[苦手]
① --省略--
② --省略--
③不得手[ふえて]。不得意[ふとくい]。(例)「数学は苦手だ」
(weak in~. not good at~. e.g. I'm weak in math.)
----------------
Hmm I think 下手 is more "objective" and 苦手 is more "subjective"; 私は料理が下手だ sounds like you're really a poor cook, and that's an obvious fact, while 私は料理が苦手だ sounds like you might be a poor cook but it might be just what you think, it might be you just don't like cooking, which is similar in meaning to 私は料理に自信がない=I don't have confidence in my cooking/私は料理が嫌いだ/私は料理が好きじゃない=I don't like cooking, etc.
We also use 苦手 for school subjects you're weak in:
社会は得意ですが、理科は苦手です。(You don't say 理科は下手です。)
for foods you don't like or you can't eat:
私はタコは好きなんですが、イカは苦手なんです。(You don't say イカは下手です。)
for people you don't really like:
山田さんは苦手だ。(You don't say 山田さんは下手だ。)
or for your weak point:
ボクはシャイで、女性と話すのが苦手なんです。(女性と話すのが下手なんです would be fine, but 苦手 is more commonly used, and the 苦手 here implies that you're not very confident in yourself.)
I think 下手 is more used to refer to someone (not yourself) unskilled/poor at/weak in~, than 苦手:
I'd rather say 鈴木さんは運転が下手です(Mr Suzuki is not a good driver) than 鈴木さんは運転が苦手です (and I think this also is partly because 下手 is more objective and 苦手 is more subjective.)