I'll add that if you do multiple internships, do them at multiple places. At this point in your career, getting breadth of experience is far more valuable than depth.
Can't agree enough. For me, internships were largely about being able to say "Okay, now I know I don't want to do that." Places I interned:
* Quigo (acquired by AOL) twice, before and after freshman year
* AMD, after sophomore year
* Goldman Sachs (as a developer), after junior year
* Microsoft, between the two years of my MS
* NASA, while doing my MS
I'm not trying to name drop, but to point out that I optimized for diversity and to emphasize how valuable this was. I worked for a startup (at two different sizes), an EE company, a bank, a big software company, and as an researcher at a government agency. Ultimately this helped me figure out what I wanted to do after school (work on my startup, then go to Google). I could easily have ended up doing something miserable (like going to Goldman - which would be miserable for me, at least) if I hadn't sampled so widely.
It's a really good way to evaluate different styles of companies. I've interned at a 7 person web dev shop, 70 person tech company writing custom software for the big 4 accounting firms, HUGE manufacturing/design company in the process control industry, and I find out today if I got an internship at Microsoft.
My experiences between working for a tech company and a physical product company were vastly different. Likewise, working for a new web dev startup (no SVN, no bug tracking, solo projects) and a mature company (yes SVN and error tracking, group projects) were vastly different.
When I graduate, I'll have a good idea the size and style of company I want to work for, plus I'll know the questions to ask to make sure it fits the dream job I have imagined.