Notes:
- You will need to restart for these changes to take effect.
- AFAIK you can no longer set limits to 'unlimited' under OS X
- launchctl maxfiles are bounded by sysctl maxfiles, and therefore cannot exceed them
- sysctl seems to inherit kern.maxfilesperproc from launchctl maxfiles
- ulimit seems to inherit it's 'open files' value from launchctl by default
- you can set a custom ulimit within /etc/profile, or ~/.profile ; while this isn't required I've provided an example
- Be cautious when setting any of these values to a very high number when compared with their default - the features exist stability/security. I've taken these example numbers that I believe to be reasonable, written on other websites.