There are ways to do this by sharing a printer from Leopard (or in my case Leopard Server—this is on a quad G5 so a simple software upgrade to 10.6 or later isn't an option). The solution changed somewhat in the change between iOS 5.x and 6.x (it appears as of today iOS 7 works like iOS 6.x). The third party "hacks" are mostly variants on the same theme, so you'll have to decide how much effort they are worth to you. The basic steps are:
1. Share the printer from the mac on the network (this does not require anything)
2. Change the string that get advertised for the printer (or advertise another printer pointing to the same printer)
to advertise that the printer as capable of accepting URF as a printer language. Google for "Airprint URF" or
see this example for iOS5: http://the.taoofmac.com/space/blog/2011/01/02/0017.
3. Change the /etc/cups/airprint.types and /etc/cups/airprint.convs files to tell CUPS to do with URF files (even
though iOS doesn't yet send actual URF files). This is also in the same example as step 2.
4. If you are printing from iOS6 or later, you need to modify the following from the above:
a. in (2) above, you need to advertise an actual URF type to something other than "URF=none." There
seem to be quite a few opinions on what works, and it probably doesn't matter too much (so pick
one from googling "airprint ios6 urf"), but it can't be none.
b. in (3) the following are probably OK choices for the CUPS files: https://the.taoofmac.com/space/blog/2012/12/15/1830
c. If you are on Leopard (10.5.8) you need to manually build and install CUPS 1.5.4 from the 1.3.11
that was the last update supplied to 10.5.8. If you don't do this, you'll be able to see the printers,
but printing will fail. Fortunately the build works cleanly from the Apple sources, as long as you
make sure it builds the correct universal binary images (otherwise it won't match with some other
libraries).