As comprehensive as the existing set of symbols is, it doesn't have every possible symbol that could exist, and it really takes the fun out of inventing a new symbol if you can't typeset it nicely.
One option I know of is "combining" existing symbols in some fashion, such as negative spaces. So I could write something like m \gg\!\!= k
, but that technique has obvious limitations.
What's the best approach here? ("Stop making up new symbols for no good reason" is a valid answer.)
Edit: For a bit of context my actual interest is in nicer display for typeset source code, particularly making common operators written as multiple ASCII characters look more like a single symbol. This often results in symbols not otherwise used–but recognizable to other programmers–and for which the negative spacing technique suffices. As mentioned in a comment on vanden's answer, I was curious about the more general case.
Best Answer
Whilst I wouldn't go so far as to define completely new symbols, I do occasionally find myself wanting slightly different ones than the standard set. Where I've encountered this is with arrows when lecturing: I find that I want the ⇔ to look a little more important, for example. For those cases, I redraw it using TikZ:
I guess that using TikZ rather than MetaFont for this is that I already know how to use TikZ for my other diagrams.