Лучший can be either comparative or superlative. Наилучший is superlative only.

Лучший can be treated as relative superlative. It is often used as "лучший из ..." = "the best of ... (some particular set of obects)" while "наилучший" is usually the absolute superlative: "the very best". Exceptions are possible though.