Why not use all 3?
Use roaming profiles. That way whenever a user logs on they have their desktop just how they like it, WITH their favorites folder and Application Data.
In conjunction with this, you could also use folder redirection. This means that people with large 'My Documents' folders don't have to spend ages waiting to log in while his/her 'My Documents' are being copied to the client computer. (the client computer now just accesses the 'My Documents' folder on-demand, from the server)
Now, the best thing to do is have all the users folders (My Documents, roaming profile etc.) on their own individual share on your server. (e.g. \\Server\Users\%Username%\%roaming profile + documents etc.%)
This would work absolutely fine on a LAN with no laptops at the moment, everyone has their desktop layout wherever they log in (due to roaming profiles), and their bigger folders are accessed on-demand from the server (folder redirection).
The problem you then encounter is that you've got laptops. People take their laptops home, and are pretty unlikely to be connected to your server from home. This means they can't access their roaming profile, nor can they access their 'My Documents'. BINGO! Offline files. Set up offline files to sync with their individual share on the server. This means that their roaming profile, documents, desktop, app data etc. is synched between their laptop and the server. When they go back to your LAN changes they've made to their documents and roaming profile are updated!
Hope this helps, if you need some clearer explanations don't hesitate to ask :D
Matt.