As others have echoed here, the solution has been and will continue to be: Media Queries.
The entire point of Media Queries is to provide a functionally identical site that modifies its layout automatically based on a few properties of the browser viewport, most commonly width and height. Media Queries, when used properly, get rid of the entire need for a toggle between mobile and desktop "versions" of the site. Instead it's the exact same site.
The only tricky part then becomes complex javascript interaction that changes drastically for the mobile "experience." Modernizr helps here, providing javascript a way to tell which Media Queries are active or not. You're going to run into some hairy problems if you want to use something like jQuery mobile, having it only be usable for certain screen sizes.
The entire point of Media Queries is to provide a functionally identical site that modifies its layout automatically based on a few properties of the browser viewport, most commonly width and height. Media Queries, when used properly, get rid of the entire need for a toggle between mobile and desktop "versions" of the site. Instead it's the exact same site.
The only tricky part then becomes complex javascript interaction that changes drastically for the mobile "experience." Modernizr helps here, providing javascript a way to tell which Media Queries are active or not. You're going to run into some hairy problems if you want to use something like jQuery mobile, having it only be usable for certain screen sizes.