After spending some time implementing this I had a few thoughts and have decided to take this in a slightly different direction.
Problem: The description is used in many places throughout the site (featured member, ranking tables, newest members, rss feed, meta tag). If BBcode is included in the descriptions then it must also be parsed (or stripped) in all the outputs which becomes slow and bad for useability in things like RSS feeds where feedreaders, aggregators and importers usually do not convert BBcode.
Solution: Several times in the past I have added a "Long description" field which is only displayed on the sites profile page, in this long description BBcode can be easily converted. So instead of replacing 1000 instances of BBcode of every page load of the rankings (and likely having a very un-unifom and ugly looking page) we just do it to the long description which is only visible on the individual sites profile.
This is a much more efficient way of handling this, and offers the best end result. I expect to have this ready as a plugin in 1 week or so.