I also suspect the initial phone interview will not be more than "Who are you?" and "What have you done?". However, that is good news because it means you have longer to study for the real technical interview.
My #1 piece of advice about technical interviews is: Be brutally honest.
Somebody who does know something in and out will spot a mark a mile away. I can tell easily when somebody is stumbling along on buzzwords and concepts and actually has never done it and has no clue.
There are two types of technical interviews, because their are two types of technical positions, beginner and advanced. For the advanced, they often need you to hit the ground running and be productive in about two weeks. They positions are usually on an established team that is looking to expand because their workload is growing on a big project and they need help fast. The beginner position is not simply beginner in terms of technical knowledge, but beginner in the sense the new guy on the team. This is a position they hope you enjoy and that you grow technically as you are mentored by the team.
In the former, you need solid technical knowledge. In the latter, you need a track record of taking on tasks, of any nature (like a PhD) and successfully completing it. You need to show a general knack for the logic of programming and a willingness to listen to your mentors.
As for study material, I agree with The Pragmatic Programmer: From Journeyman to Master
and Jeff Atwood's blog. Also good are Joel Spolsky's two books
. On the latter of the two, don't forget that part of being on a team is communicating about what you are doing, not just writing code.