One of the good reason is that one (or more) of the servers you ping after you publish a post has gone down or is overloaded. When you publish a new post, WordPress automatically notifies the configured ping servers that your site has been updated.

For last few days my blog postings were taking virtually forever. So I explored and identified the culprit:

http://bulkfeeds.net/rpc
I removed this server from the list and posting time went back to normal. Remove this server from your list of servers to ping for the time being. You will find your configured ping servers under Options->Writing in Updates Services section.