My current company does a few rounds of low-key chatting, some about technical stuff, then a 1 to 2 month trial period with the understanding that there is no guarantee of a job at the end, it only becomes permanent if it's a good fit on both ends. Obviously this is time consuming and expensive, but it works because we're a small and very stable company, which I realize is very much _not_ the norm. This does work great, though. They've managed to build a team of excellent, autonomous, highly skilled developers who stick around for the long haul. Wow, that sounds a bit self-aggrandizing -- I'm really thinking of my co-workers, I hardly count myself in that category. Maybe someday.
Anyway, I'm genuinely curious what other models you all use that work well. By "work" I guess I mean result in high quality and long lasting additions to a team.