There’s no difference. Both are valid ways to get the JavaScript parser to treat your function as an expression instead of a declaration.
Note that + and ! will also work, and are sometimes used by minifiers to save a character of size:
+function() {
var foo = 'bar';
}();
!function() {
var foo = 'bar';
}();
EDIT
As @copy points out, for completeness, ~ and - will also work.
-function() {
var foo = 'bar';
}();
~function() {
var foo = 'bar';
}();