BOMというのが、Byte Order Markの略.
BOM付きというのは、そのファイルを読み込むプログラム側に「このファイルは文字コードがUnicodeのUTF-8形式で書かれてますよ」と、事前に通知してあげる状態のことを言います。
そのために、ファイルの先頭に目に見えない形で約3バイトほどのデータを付加しています。これがBOMです。
一方BOMなしというのは、この情報を付加しない形のものとなります。
BOMなしの場合、ファイルを処理するプログラムによっては文字エンコーディングがUTF-8なのか、UTF-16、UTF-32なのか、はたまた別の文字エンコーディングなのか判別がつかず、文字化けを起こしてしまう可能性がある。
そういう場合にはBOM付きで保存すると、文字エンコーディングを正しく判別することが出来て文字化けを防ぐことが出来ます。
BOMをつければ良いというわけではなく、この後のプログラムも両方のデータで検査したほうが良いらしい。