The best way is to ask. With the ever changing landscape of devices, automatically redirecting is falling out of favor. I would use a cookied little bar at the bottom of the page that asks if they want to view the mobile site. Let them select or close it and have it expire after the session.
One thing to keep in mind, google wants you to redirect to the same mobile page. Like if a user is on site.com/products/nifty-hair-gizmo.html don't redirect them to m.site.com, redirect them to m.site.com/products/nifty-hair-gizmo.html
The reason that automatically redirecting is falling out is because of devices like the new chrome cast and how other phones are set up. I might browse to your site on my phone and be casting it to my 46" lcd and you would never know. But I am going to be irritated if I have to look at your site in a mobile version on my tv.