As people have quite correctly stated, H.264 is what MPEG call the standard. H.264 is 500+ page standard that carefully details the more technical aspects of H.264; specifically it says what syntax a compliant bitstream should contain. The good thing about this is that different companies can refer to the H.264 standard and produce software and hardware that is spec compliant. That means if you have a spec compliant H.264 video, it will be playable on anyone's software or hardware providing they have followed the specification, and that there are no other limitations with regard to processing power (eg you can have spec compliant H.264 on a mobile phone but it's very low complexity compared to most AMVs, and incredibly low compared to HDTV).
Let's take this real world example.
I use an encoder called x264, which you should all be familliar with. This is what the authors have called it, just like how the other authors called their codec XviD (the standard XviD adheres to is MPEG-4 ASP). Now x264 is spec compliant, that means all things being equal, I can encode a video with x264, and it can be decoded/played back with any spec compliant decoder.
Examples of spec compliant decoders are libavcodec (a library which is used in FFMPEG and FFDShow), CoreAVC and Nero Showtime. Although they have different names, they are all H.264 decoders.
Now on the other side of it, as well as x264, Nero have their own encoder too in Nero Recode. Nero Recode is also H.264 compliant, so it's just as fair to call Nero Recode a H.264 encoder as it is with x264.
The quality can differ between codecs, the specification doesn't define how your encoder has to encode the video, just how the final bitstream and syntax must be. This can allow for very complex, slow high quality encoders, or a very simple real time encoder. The features and quality could vary vastly, but providing they follow the spec, you will be able to play either encode on a spec complaint decoder such as the ones I mentioned before.
So this is pretty good huh? If companies follow the specification, it means you can use whatever encoder you want to create H.264 video, and it will be decodable by any H.264 compliant decoder. That gives your average user a choice, it also means that these videos can be played on other Operating Systems such as Mac OS or Linux.
So as you can see, technically it would be incorrect to label your video as an x264 version, because it's really a H.264 video which can be decoded by any H.264 decoder. Similarly a lot of people use LAME for MP3 encoding; it's not a LAME file, it's still MP3. LAME is just the name of the software; it's the type of file which is most important.
Now on to DivX and XviD. Ever notice how you can play XviD encodes using a DivX decoder and DivX with the XviD decoder? It's not magic

and it's not really to do with the codecs or their names. You see DivX and XviD both create encodes to the MPEG-4 ASP standard. This means I can decode it in any MPEG-4 ASP capable player. Even my mobile phone can play XviD (MPEG-4 ASP) encodes, and you can't even install codecs, you are stuck with a crappy built in real player.
So to sum it up:
MPEG-4 ASP = Name of a video coding standard (sort of like a guideline)
H.264 = Again, this is the successor to MPEG-4 ASP, much more efficient and much more detail specification to ensure better interoperability.
XviD/DivX = Name of encoders from different parties; they both create videos according to the MPEG-4 ASP specification, bar the exception that it should be stored in MP4 and not AVI
x264/Nero Recode = Again, names of encoders. Like DivX/XviD, the quality can vary between them, but the resulting video is still spec compliant and can be played using compliant decoders.