`cat /dev/null > file.txt` is a [useless use of cat](http://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat).

Basically `cat /dev/null` simply results in `cat` outputting nothing. Yes it works, but it's not necessary. It's frowned upon by many because it results in invoking an external process that is not necessary. 
It's one of those things that is common simply because it's common.

Using just `> file.txt` will work on most shells, but it's not completely portable. If you want completely portable, the following is a good alternative:

 true > file.txt

There is also (but I do not believe is defined in POSIX):

 : > file.txt

Both `:` and `true` output no data, and are shell builtins (whereas `cat` is an external utility), thus they are lighter and more 'proper'.