There are following two approaches to do the migration of MOSS 2007 applications to SharePoint 2010:

Approach-1: Using Microsoft Upgrade Approach (In-place upgrade, Database attach upgrade, etc)

Approach-2: Using third party products like AvePoint, Metalogix, etc.

I read many blog on this topic and most of the people who have done the MOSS 2007 to SharePoint 2010 migration are recommending following:

Use Microsoft Upgrade Approach if:

1) Your content is simple like documents, web pages, out of the box SharePoint web parts, content types, etc.

2) You want to retain the same Information Architecture and use SharePoint in the same way as you used to.

Use third party specialist migration products if:

1) You want to restructure the content, Information Architeture, security, etc.

2) Your content requires any new feature in SP 2010 (like document sets, managed metadata, in-place records mgmt. etc)

3) Your content has links to other content, which needs to be resolved and updated.

4) You have very large volume of critical data and want to audit the migration process.

5) If you have some level of customisations/applications that is not automatically supported by the standard upgrade process.

6) You want to consolidate data from other legacy systems as part of this upgrade