A
First off, nearly every champion can solo top with the right masteries/runes and first item.
The first item has to bring you sustain, it really depends on your champion but usually recommended:
Ranged AD - Life steal! Either Doran's blade or (better - vampiric scepter)
Non ranged - Regrowth pendent > Philosophers stone
AP ranged - Regrowth pendent > Philosophers stone
I understand those items are really generic, but if you play defensively they can keep you in lane indefinitely.
As for champions, some are obviously better than others, and as already mentioned, sustain is THE main thing you need, along with an ability to help you last hit.
Do NOT pick a champ that can be ignored at a tower
So Leona, although tanky, isn't really an option because her damage is so ignorable. Same applies to champions like Soraka etc.
Recommended top lane champs for me are:
Irelia - very tanky, hard to gank, in built sustain through life
steal, especially post level 6
Trundle - passive gives sustain, great anti gank + gank aiding skill
Nidalee - really excels top, heal, big poke nuke, hard to gank post 6, hard to harass
Swain - Hard CC, great sustain post level 6, hard to harass
Vlad - Great sustain, very hard to gank, hard to harass
Warwick - Great sustain, harassing is futile, nice lane to gank post 6.
Singed - Good farming and sustain with the right set up
Gangplank - Amazing farming, free cleanse, nice harass, global ult
Pantheon - Great farming, can help gank mid quickly, hard to tower dive
Shen - Quite weak at the moment, but global ult makes him a great top
Jarvan - Similar to irelia with a little less sutain. Very hard to gank, dangerous when getting ganked
Anivia / Annie - amazing farmers, nasty CC, nice harass, hard to harass
Gragas - sustain from heal, nice harass, hard to gank
Maokai - great sustain from passive, needs mana regen to effectively harass, great farmer
Blitz - dangerous grabs under tower, hard to tower dive, good lane to gank.
Yorick - good harass, built in life steal, hard CC (slow) for over extended enemies (good lane to gank)
Galio - good harass, good farm, hard to tower dive (post level 6), good lane to gank (post level 6)
Orianna - Low mana costs if you just use Q, good harass and farm, hard to harass due to large zoning skill, good lane to gank (post level 6).
I think I covered most of the good solo tops, but to be honest it falls down to either tanky champs who can handle the harass and are hard to push out of lane, damage dealers with life steal that are hard to harass or casters with inbuilt sustain.