As Caramdir says in the answer linked by Jubobs:
The standard nodes have anchors node.〈angle〉 where angle is between 0 (=east) and 360, measured counterclockwise. These nodes lie on the border of the node, on the line of the given angle from the center.
That explains what the numbers are doing.
The second part of your question is a little trickier (and there could be some variation depending on how the block style is set which you don't put in your question). The problem with using angles for what you want is that the heights of the points corresponding to the angles can be different for different shapes:

So although you might want to use the angles to specify where the arrow leaves one shape, you probably don't want to use the angle to specify where it enters the other. What you really want to say is "keep it horizontal until it hits the border". As far as I know, there isn't an inbuilt construction for that but it isn't hard to simulate it using the coordinate specification for intersections, |- and -|. In your case, you have an arrow leaving a at a.345. Now you want it to go along horizontally until it reaches b. It will reach b on the left-hand side so we need to know the x coordinate of the left-hand side. This is conveniently the same as the x coordinate of the west anchor of b. So we want the y coordinate of a.345 and the x of b.west. This can be done using the let construction with the calc library, but can also be written as (b.west |- a.345). This means "The point where the vertical line through b.west meets the horizontal line through a.345.".
The one snag with this is that if you change the exit point of the arrow then you have to change the a.345 in both places. You could use a coordinate to label that point: \coordinate (a exit) at (a.345); \draw[->] (a exit) -- (b.east |- a exit);. Or you can use a bit of hackery that defines a "virtual coordinate" which always expands to the last point specified. This is what I do below.
\documentclass{article}
%\url{http://tex.stackexchange.com/q/113998/86}
\usepackage{tikz}
\usetikzlibrary{arrows}
\tikzset{
block/.style={draw,fill=cyan}
}
\makeatletter
\expandafter\def\csname pgf@sh@np@last point\endcsname{\def\centerpoint{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}}
\expandafter\def\csname pgf@sh@ns@last point\endcsname{coordinate}
\expandafter\def\csname pgf@sh@pi@last point\endcsname{\pgfpictureid}%
\expandafter\def\csname pgf@sh@nt@last point\endcsname{{1.0}{0.0}{0.0}{1.0}{0.0pt}{0.0pt}}
\expandafter\def\csname pgf@sh@np@last saved point\endcsname{\def\centerpoint{\pgfqpoint{\tikz@lastsavedx}{\tikz@lastsavedy}}}
\expandafter\def\csname pgf@sh@ns@last saved point\endcsname{coordinate}
\expandafter\def\csname pgf@sh@pi@last saved point\endcsname{\pgfpictureid}%
\expandafter\def\csname pgf@sh@nt@last saved point\endcsname{{1.0}{0.0}{0.0}{1.0}{0.0pt}{0.0pt}}
\makeatother
\begin{document}
\begin{tikzpicture}[node distance=1.5cm, auto, >=stealth]
% nodes
\node[block] (a){\textbf{START} };
\node[block] (b)[right of= a, node distance =6cm]{\textbf{END}};
% edges
\draw[-open triangle 45] (a.345) -- node[rotate=0,above, yshift=1cm] {a-B} (b.west |- last point);
\draw[open triangle 45-] (a.15) -- node[rotate=0,below, yshift=-0.5cm] {B-A} (b.west |- last point);
\end{tikzpicture}
\end{document}

(a)to node(b)but from their centers. The angle moves the arrow. Try to use(a.50), for example. – Sigur May 13 '13 at 13:00