I was in a similar situation years ago and found some great internships with small organizations.
Determine what type of company you'd like to work for and the region you'd like to work in. Put together your resume and a cover letter explaining your situation - student with skills seeks internship. Enthusiasm, personalization, and academic credentials will likely go a long way.
Breadth is important. Contact a lot of companies. You may not be able to work with your first choice, but there may be opportunities you're not aware of.
This worked well for me. I met enough people during my second internship in NYC that I had a bonus and a great job when I graduated.
In hindsight, I'd also recommend contacting non-HR employees of companies you're applying to. Don't be afraid to track down the CEO's Skype or AIM account. If you send a personal email, I see no problem in following up with a phone call.
I want to emphasize that it's unlikely something interesting will fall in your lap, so you need to be proactive. That said, I think you'll be surprised by the response and happy with the results.