The short answer is that different issues are important to different people, and on some issues which are important to some people, McCain is viewed as more favorable.
Abortion-- This is one of the major polarizing issues in American politics. There are a great many people on both sides for whom the abortion issue alone is important enough to trump all other issues. McCain is viewed as being more opposed to abortion than Obama, so the single-issue abortion opponents are mostly lined up behind McCain.
Guns-- Another polarizing issue, though it’s somewhat fading out of the spotlight in the past year or two. Some people want as many restrictions on private use and ownership of guns as possible; some people want as few as possible. McCain is stronger on the “few restrictions” side than Obama, so those voters for whom guns are most important also back McCain.
The haves vs. have-nots issue-- A classic in politics for probably all of human history. Comparatively, Obama’s policies favor the have-nots, while McCain’s policies favor the haves (this is most apparent in their tax plans). So many haves who are voting their pocketbook support McCain. Of course, there are relatively few true haves, but they can also spend money to convince others of their views.
Race-- There are still some people in this country who do not think that any black man could possibly be qualified to be President, despite any evidence to the contrary. Hopefully, this group is small, but they’re undeniably still there, and they’re lined up behind the white guy.
Religion-- For the past few decades, the Republicans have made a much larger show of Christianity than have the Democrats. It’s certainly debatable (especially this year) how much of that show is accurate, but at least some people believe it.