There are three main systems of Japanese Romanization, or romaji: Hepburn, Nihon-shiki, and Kunrei-shiki. Only Hepburn is designed to approximate English in pronunciation, and hence that is the one I prefer, although with a few modifications.
Hepburn is best because it provides a 1:1 match with how Japanese sounds, precluding the need for memorizing any pronunciation rules. For example, an s is always pronounced like "s" in English, whereas in Nihon-shiki and Kunrei-shiki it would depend on what vowel follows it (e.g., s followed by i sounds like "sh"). Moreover, Nihon-shiki and Kunrei-shiki don't play well with the various extended katakana to better approximate foreign-origin words.
I've prepared a table showing kana by their consonant and vowel sounds, which includes all three Romanization forms. This doesn't follow the typical order that you'll find everywhere else on the internet, but I find it to be a useful reference nonetheless.
When I use romaji, there are a few places where I vary from the standard Hepburn Romanization. The first is with long vowels. Long vowels in Japanese, unlike in English, do not describe a different kind of pronunciation, but rather a longer duration of pronunciation. This occurs when two vowels are next to each other. The standard Hepburn Romanziation requires the use of a macron (a line above the vowel) to designate these: ā, ō, ū, etc.
The problem with Hepburn's method is that it conflates things that are actually spelled differently in Japanese. Take "throne" (王位, or phonetically おうい) and "a lot" (多い, or phonetically おおい). These would both become ōi, with both ou (in "throne") and oo (in "a lot") becoming ō. I always stick with the kana spelling, so that these two, and others like it, would be differentiable: oui and ooi.
The second place I don't follow the most recent version of the Hepburn method is with n (ん). The n is supposed to be written with a macron over the top, but since that requires special fonts it's kind of a hassle. I stick with the traditional method of following n with an apostrophe before a vowel or y in order to distinguish n'a (んあ), n'i (んい), n'u (んう), n'e (んえ), n'o (んお), n'ya (んや), n'yu (んゆ), and n'yo (んよ) from na (な), ni (に), nu (ぬ), ne (ね), no (の), nya (にゃ), nyu (にゅ), and nyo (にょ).