External Rotator (shoulder) work is key. Swimming tends to create internal rotator dominance. It's why if you ever look at college swimmers they tend to have the hunched over look. Make sure you do a lot of overhead lifts, or at the very least make sure to do overhead squats on a regular basis. Those and handstand pushups have done wonders for my general shoulder health and happiness.
As far as swimming faster, weights are unlikely to really do much for you. Swimming is almost entirely about technique. Yes, strength endurance helps, and the best sprinters are usually pretty powerful bastards, but the difference between you and all the girls on a high school swim team that would probably smoke your ass in the water is technique. Either get a friend who swam at a decent high school or (ideally) college level to fix up your stroke or see if there's a newbie friendly masters team in the area.
Swimming rocks, and it combines with a strength routine pretty well.