There are a variety of choices:
1. Use the built-in import wizard. Very good price - Free! but not so versatile at importing related entities and processing failed import rows.
2. Use one of the many third party tools for the import process. Very capable, fast but you will pay for this software.
3. Engage a Microsoft CRM partner that has the knowledge and in-house tools and real world experience to do this for you.