Hi Steve,
Both tools have their place and it depends on what type of work you're doing and for how long. Test To Live is great when you are confident there haven't been any design changes made in Live as you get a fast and easy migration of the entire system design. My personal best practice is to have a three environment process (as DMS) but use Test To Live in both cases.
1. Backup Live database.
2. Restore Live database to DEV environment.
3. Make design changes in DEV ensuring no design changes are being made in Live.
4. Backup Live database.
5. Restore Live database to UAT environment.
6. Perform T2L from DEV to UAT. Test changes have come through successfully.
7. Perform T2L from either DEV or UAT to Live.
Step 3 is very important - any design changes in Live will impact T2L causing unpredictable results. Step 6 is also very important but should not take long else you might find Live changes too much by the time you reach step 7.
Design Transfer is great because it lets you pick and choose what to transfer and leaves everything else alone. If it is not feasible to stop design changes in Live or you just want more control over the migration to Live then DT can be a better option.
Stu