In my view, Barnabas was neither really a hero nor a villian. Sure some of his actions were villianous and downright evil, while other actions could be applauded and condoned. Certainly [spoiler]the murder of Carl can't be condoned in any shape or form, nor the fact he wanted to kill Maggie, Burke and David during his early days.[/spoiler]On the other hand [spoiler]the fact that he wanted to help Chris find a cure to Chris' curse[/spoiler] proves that Barnabas still had some good in him and he was capable of compassion for others.
[spoiler]BTW how was Barnabas' staking of Tom Jennings callous? What was he supposed to do, let Tom live and kill Julia, thus making her a vampire? Killing Tom to save Julia[/spoiler] is another example of Barnabas' better deeds. He wouldn't have [spoiler]staked Tom[/spoiler] if he didn't care so much for Julia. At that point he had come a long way from the nasty, cruel vampire Barnabas who treated Julia rather badly at the beginning of their relationship.
Barnabas was like the rest of us.....human (even in his vampire state, lol). The fact that he can do both good and evil makes him a very complex and interesting character.