Anything but a colon (because the colon was the directory separator for the old MacOS). In fact, any Unicode character at all except for a colon--just about any language or special characters you can think of. I just put every non-colon punctuation mark on my keyboard into a filename (including wildcards like & or *), and nary a hiccup.
Actually, it may be technically possible to put colons in as well, but most Mac apps won't let you, anyway, I assume because it would confuse the hell out of older programs without full long filename support. The save dialogues try to prevent you from using a forward slash (/) in filenames as well, since that's the Unix directory separator, but it can certainly still be done, even in the Finder. It's just not a terribly good idea.