I've just finished interviews with several software companies, and here's what I've experienced (and what I thinked helped me score an internship):
Brush up on your CS fundamentals, specifically data structures and sorting/searching algorithms. You'll definitely get at least one technical question regarding them and they'll usually want to see you write some code by hand to solve a simple problem using one of the fundamentals.
Figure out the dress code in advance of the interview. Several interviews said "dress casually, we're more interested in what you have to say than what you're wearing." So I wore a nice long-sleeved shirt and nice pair of jeans. If they don't mention that, though, you can't go wrong with slacks and a dress shirt and tie.
List your personal projects on your resume and try to bring them into the conversation when you have a chance. My interviewers were always interested to talk to me about those because they had nothing to do with my academic life but showed that I was really passionate about the field.
Be honest and frank during the interview. Don't sugarcoat anything and certainly don't try to BS your way through a technical question that you don't know the answer to. Interviewers see BS on a regular basis and can smell it coming a mile away.
You're already going to stand out because you participate here on SO. That tells me you're probably familiar with things like source control, continuous integration, unit testing, etc. Those aren't always covered in CS classes, but real-world folks like to see that you at least have exposure to them and know what they're all about even if you haven't used them on a regular basis.
When you're solving a coding problem by writing out code, talk about what you're doing as you write it out. Don't just shut down, write and think for 5 minutes, and then say "ok here's the answer." I've heard that interviewers like to see your thought process as you solve a problem, so anything you can do to expose that to them will help you. If you've also actively engaged with them while you're solving the problem, they're much more likely to help you if you get stuck. Getting stuck isn't necessarily a bad thing either, as it opens up dialog with them over what ideas you're using to solve the problem and that's one way you can demonstrate your knowledge of CS principles to them.
The most interesting interview question I've gotten so far was from a Cisco interviewer who finished up the interview by asking, "So we can talk about system integration or you can draw me a picture of a house."
I took the bait. "Let's draw a house."
"Alright draw me a picture of a house."
So a I drew a house with a roof, chimney, some windows and doors.
"But where do I park my car?"
So I drew a driveway. I even added a front yard with some bushes and trees.
"But where am I gonna put my boat?"
So I extended the driveway, and drew a boat sitting in it.
"It's a big boat. I don't think it's going to fit in the driveway."
So I drew it parked out on the curb and responded, "You know pretty soon we have to cut off the feature bloat and just ship this house."
Oh, and I'll be interning at Cisco this summer. :)