Practically every modern digital camera maufactured today supports EXIF tagging, and some smartphones do it as well (Nokia Series 60 phones do it in a remarkably obtuse fashion, but at least it's there in a way).
- jhead is one of my favourites
- exiv2 seems to do all jhead does, and more (including IPTC tagging)
- jpeg impec, an AppleScript bundle that uses jhead and jpegtran
- The PHP JPEG Metadata Toolkit - pretty much everything you might need.
- jpeg.py - reads and writes metadata, restricted but simple to use
- EXIF.py (read-only)
- pyexif - pretty complete parsing (read-only)
- IPTCInfo (read-write)
- ExifTool is a Perl module and command-line tool that reads and writes EXIF tags, including GPS ones (table)
- an EXIF module written in Perl
- Exifer, a PHP library
- phpExifRW, the only PHP4 library I know of that actually writes EXIF tags.
- PEL, a PHP5 library that can also write EXIF tags