blargg beat me to it, so I'll clarify:
First you use the compiler that comes with Xcode to compile the
cc65 toolchain, and then you can use ca65 and ld65 to compile your NES games. You can compile image conversion tools using the compiler that comes with Xcode, and then you can use those tools to convert PNG images to data the NES can use. Or you can install Python Imaging Library into the Python interpreter that comes with Mac OS X and use image conversion tools written in Python.
I asked about the "(besides xcode)" because
a year and a half ago, there was someone with a Mac who couldn't compile the tools because he drove into town to upgrade Mac OS X and didn't think to upgrade Xcode as well. He lived where decent broadband was unavailable, and he didn't want to have to drive into town again to upgrade Xcode.