Чтоб научится разговаривать логично, нужно прежде всего знать логику. Чтоб приводить аргументы, нужно быть компетентным по теме разговора. Чтоб красиво уходить от ответов - это не к логике, это к риторике. Чтоб быть на шаг впереди, нужно знать цель к которой стремится оппонент в беседе, и будучи компетентным в теме - искать самые весомые возражения оппонента, это будет ситуация, когда вы на шаг впереди.
Тут как в шахматах, зная теорию, можно ожидать тех или иных ходов соперника по теории(если же соперник не знает теорию, то скорее всего он проиграет), зная их, и видя картину, которая сложится через 2-3 хода, можно использовать эту картину в своих целях. В данном случае, задача состоит только в том, чтоб знать возможные варианты развития событий и распределить эти варианты по приоритетам, от сильнейшего к слабейшему. К этим параметрам можно ещё добавить некоторые переменные. Например, знает ли соперник сильнейшее продолжение, или каково его психологическое состояние в данный момент, или как он предпочитает действовать в данной ситуации. Зная эти моменты, можно предположить возможный характер его действий. Точно так же и в диалоге, алгоритм общий, а переменные индивидуальны.
Это все из личного опыта, научных исследований не проводилось :)
неожиданная концовка
Я бы еще добавила, что собеседник должен чувствовать себя комфортно.
Развивать мыслительную реакцию, читать книги и развивать общую эрудицию, работать над техникой словесной речи, и главное - больше общаться с людьми;)