I personally always use != for clarity, unless I'm looking for a number that is either greater than or less than another number. Since <> implies greater than or less than as opposed to not equals, it doesn't read well with strings - unless alpha-sorting/ranking is what's desired.
For example:
String myVar = 'apple';
system.assert(myVar <> 'orange'); // Pass
system.assert(myVar < 'orange'); // Pass
system.assert(myVar > 'orange'); // Fail
So in the spirit of creating self-describing code, != is my choice for all "not-equal" scenarios that don't involve ranking or ordering of any kind. Otherwise <> will work the same, but with incompatible types you can't perform a < OR a >. In other words:
system.assert(myVar <> null); // Pass
system.assert(myVar > null); // Error: Comparison arguments must be compatible types: String, NULL)
So whatever more accurately describes the comparison is my 2-cents.