Слово "кстати" может выполнять различные функции в предложении.
Поэтому в одних ситуациях оно может выделяться запятыми, в других - нет.
<hr />
I. Вводное слово.
Означает, что фраза говорится в дополнение к уже сказанному. Выражает связь связь между предшествующим и последующим высказываниями.
В этом случае "кстати" не является членом предложения (его можно опустить без потери смысла), к нему нельзя задать вопрос.
По правилам русского языка вводные слова обособляются, поэтому перед / после кстати нужно ставить запятые.
Например:
Кстати, я тебе ещё не всё рассказал.
Солнце, кстати, только под вечер выглянуло.
<hr />
II. Часть вводных оборотов (вводных словосочетаний): кстати говоря, кстати сказать и пр.
В этом случае обособляется весь оборот.
Например:
В этом месте, кстати говоря, мы и познакомились с ней.
<hr />
III. Член предложения - обстоятельство.
Здесь наречие "кстати" может иметь несколько значений:
1) Вовремя, в подходящий (нужный) момент, к месту, уместно. Данное наречие связано с глаголом и обозначает признак действия.
2) Вместе с тем, пользуясь случаям.
Обособлять "кстати" в любом случае не требуется, так как это член предложения, и его нельзя опустить.
Например:
Ты пришёл сюда весьма кстати.