You can use lxml.html.parse() function that accepts file-like objects, such as what urllib.urlopen() returns. See lxml documentation on that.
Then, as @CharlesDuffy suggests, you can use u'\n'.join() to concatenate all text elements within the p elements you select, with newlines \n
Also, I would suggest working with unicode strings all along, until you need to print or write to file.
import urllib
import lxml.html
page = urllib.urlopen('http://www.toponymic-dictionary.in.ua/index.php?option=com_content&view=section&layout=blog&id=1&Itemid=2')
# use "page" as a file-like object
xmldata = lxml.html.parse(page).getroot()
ptexts = xmldata.xpath('//p[@class="MsoNormal"]//text()')
joined_text = u'\n'.join(ptexts)
print joined_text.encode('cp1251')
lxml?