I believe many Republicans vote for McCain, because he is the only one who seems to stand a good chance of beating Clinton or Obama. McCain is also far enough from the Bush administration that he will not be tainted by the low approval rates of Bush.
Obama talks on and on about change, but change for change's sake is just stupid.