Funny you should say that, as I'm currently testing a piece of code I wrote, which is a slight modification to code I "borrowed" from the bottom of that forum thread
var r =
"Tablet|iPad|PlayBook|BB10|Z30|Nexus 10|Nexus 7|GT-P|SCH-I800|Xoom|Kindle|Silk|KFAPWI"
var isTablet = r.IsMatch(userAgent) && isMobile;
This seems to work for common tablets, but I'm not so sure of the various convertables, and is obviously prone to being broken by the Mobile/Tablet market - where new devices appear at an alarming rate.
The 51Deg solution has some attractions in that is regularly updated (weekly) and more advanced in its agent-string analysis, but the downside is obviously the extra $$ (although not so bad if running multiple websites on the one host - sounds like I'm talking myself into it - LOL) and I am unsure if the httpHandler (which basically intercepts all requests) will interfere with Sitefinity.