The domain parameter is optional for NetworkCredential in general. As to whether you should use it or not depends on the type of authentication you are doing and the format of the username you are using.
With Negotiate authentication (the default), you generally want to specify the domain parameter. Use the machine name for a local machine account. If you specify the UPN of an AD user (user@domain.com), then you leave the domain blank.
ADAM users don't have domains, so you generally don't use the domain parameter for them but instead use one of the bindable username attributes (distinguishedName, displayName or userPrincipalName) in the user name parameter.
I hope that helps.