It was difficult to find the documentation on exactly which groups / policies the CrmAppPool identity needed when changing from Network Service to a domain user account. Fortunately I found this Microsoft KB which gives you step-by-step instructions (note, I removed the CRM 3.0 portions) and it worked on the first try:
1. Include the domain account user in the following groups in Active Directory:
o The Domain Users Active Directory group
o The PrivUserGroup
o The SQLAccessGroup
To do this, follow these steps:
d. Log on to a server as a user who has the Domain Admin rights or the rights to update these groups.
e. Right-click the Domain Users group in Active Directory, and then click Properties.
f. In the Group name box, type the name of the user who is running the CRM Application Pool, and then click OK two times.
g. Repeat steps b and c for the PrivUserGroup group and for the SQLAccessGroup group.
If you have more than one Microsoft Dynamics CRM deployment installed, multiple groups exist in Active Directory. To determine the groups that you want to update, follow these steps.
For Microsoft Dynamics CRM 4.0
h. Run the following SQL statement against the MSCRM_config database:
select id, friendlyname from organization
i. Note the GUID. For example, the GUID may be C8AB1D52-9383-4164-B571-4C80D46674E3 Org Name.
j. Find the PrivUserGroup group and the SQLAccessGroup group in Active Directory. The group name contains the GUID that you noted in step b.
2. Include the domain account user in the following groups in the Microsoft Dynamics CRM server:
o The local IIS_WPG group
o The local CRM_WPG group
Note The domain account user must have the following local user rights:
o The Impersonate a client after authentication right
o The Log on as a service right
To do this, follow these steps:
d. In the Microsoft Dynamics CRM server, click Start, point to Administrative Tools, and then click Local Security Policy.
e. Expand Local Policies, and then click User Rights Assignment.
f. Right-click Impersonate a client after authentication, and then click Properties.
g. Click Add User or Group.
Note You may have to click Location to select the domain instead of the local computer.
h. In the Group name box, type the name of the user who is running the CRM Application Pool, and then click OK two times.
i. Repeat steps 2c through 2e for the Log on as a service right.
3. Restart Internet Information Services (IIS). To do this, click Start, click Run, type IISRESET, and then click OK.