What's the correct pronunciation of his name? Luffy or Rufi?
At the One Piece wikia, it says "Monkey D. Luffy (モンキー･D･ルフィ Monkī D. Rufi)".
This answer needs a premise.
You see, Japanese don't distinguish between the L and R sounds. The L doesn't really exist and the R is not pronounced like in English. It's more similar to the Italian/Spanish R but it's not rolled. Also, FI doesn't belong to the standard Kana — ha, hi, hu (fu), he, ho — but it's constructed.
Based on this, you could say both (and probably for Japanese there really isn't a difference like for us). But apparently Oda meant the name to be Luffy (can't find a source yet), and since the Japanese language cannot faithfully represent this name it became Rufi, being the closest match to the actual name.
Luffy is the official spelling, which you can see printed on official merchandise.
「ルフィ」 (rufi) is the Japanese pronunciation of this name. The first syllable of it is pronounced by the average Japanese person as an alveolar tap (written in the International Phonetic Alphabet (IPA) as the fishhook-shaped ɾ symbol. Note how this symbol subtly differs from the English r letter) plus an "oo" sound (as in "root," "google," etc. Written in the IPA as "u" or in the standard symbol as ū. See the English Language & Usage SE for details on "u" here).
The Japanese syllabograms ra, ri, ru, re, and ro (ラ、リ、ル、レ、ロ、 or in hiragana, ら、り、る、れ、ろ) are alveolar taps, which are a type of liquid consonant that sound rolled. They do not directly correspond to any English letter such as R (which is written in the IPA as . Notice that phonetically it is not the same as the thin fishhook-shaped ɾ symbol). An alveolar tap can sound approximately like any of the following English letters: R, L, or D. In Japanese pronunciation, it is equally acceptable to pronounce 「ルフィ」 sounding like a rolled R, a non-rolled R, an L, or a D.
Since many native English speakers do not grow up exposed to listening to the alveolar tap, many think they are hearing an R or L while listening to Japanese and therefore romanization of Japanese into romaji uses "r". This is the exact inverse of some Japanese people hearing an English R or L and thinking that they are hearing an alveolar tap. Some Japanese can distinguish the difference in listening to the English R versus L versus alveolar tap, even though they cannot accurately replicate R and/or L, while some Japanese cannot hear the difference. Some can pronounce the difference between R and L. Some cannot originally distinguish and pronounce the difference but can learn to via phonetics training.
The natural English pronunciation of the spelling "Luffy" would most likely be with an L sound and a short "uh" sound (as in "ruff, "just," etc. Written in the IPA as or in the standard symbol as ŭ). However, such an intended pronunciation would have been written in katakana as 「ラフィ」 (rafi) with an "ah" sound (as in "call," "also," etc. Written in the IPA as or in the standard symbol as ô), so we can deduce that Oda did not have "luh" in mind as the correct pronunciation.
「フィ」 is a glide (not unlike a diphthong slide) of 「フ」 (fu or hu) + 「イ」 (i) = "fui" sped up becomes "fi". It is analogous to the long I sound (as in "sunny," ski," etc. Written in the IPA as "i" or in the standard symbol as ē).
In International Phonetic Alphabet, 「ルフィ」 is pronounced ɾ u f i. To present this in perhaps an easier-to-read spelling, we could write "roo + fee" where the "r" is rolled (as much or as little close to an English L as you like).