I'm not sure if it's mature for large things, but it sure is ready for midsize database-driven apps if that's your cup of tea. I made a patient management system using WPF+SQL Server 2008, and didn't have that much trouble.
Pitfalls - I've got one - fonts. Seriously, how do you explain your non-tech-savvy client that there's nothing that can be done to improve WPF font rendering on XP? This area is very painful, and it doesn't look as though Microsoft is addressing it. (Please correct me if I'm wrong.)
Best practices? Umm, yes, you mention databinding, that works quite well, though of course it inhibits clear tier separation somewhat. I actually think most of the ideology inherited from the WinForms era still applies, provided you've managed to start thinking about UI differently. My best practice for WPF has been to use code generation to map out a database into a series of controls kept in a WrapPanel
. In fact, these wrap panels are great because they scale to any screen size, and layouting actually feels smooth and natural.