How to make a bannister for a spiral staircase?
One way is to just add some cylinders to your stair object:




Add the cylinder meshes while in edit mode with the stair object selected.
Line up the geometry on the end of each cylinder (snapping is useful here, as it leaves no doubt about which vertex should be merged with what):



What I did in the gif:


Note the Z rotation of the array empty (this is only needed for the initial setup, it will be done automatically later), then enter edit mode and rotate the end to the cylinder the same amount (in my case, ~3.1)
Enable apply modifier to edit cage on the array modifier (inverted triangle icon).
Ensure the snapping type is set to Vertex and Self snapping is enabled in 3D view > Header.
Select any part of the horizontal cylinder, then press CtrlL (select linked) CtrlI (Invert selection) H (Hide selection) to get a clearer view and make snapping easier.
With the rotated end of the horizontal cylinder selected, press G and then hold Ctrl with your mouse cursor over the other end of the cylinder in the next array element.

Now enable Merge in the array modifier to merge those vertices together, resulting in a sub-serfable railing: 


By using hooks parented to the main empty, you can keep the merged parts in the right locations, no matter where you move the main empty:



To do this, select the end of the horizontal railing cylinder and press CtrlH> Hook to new object. This will automatically add a vertex group, an empty, and a hook modifier. The hook modifier will bind the location of the vertices in the vertex group to the location of the empty.
Parent the newly created hook empty to the empty controlling the array (CtrlP> Object).


Repeat the hook+parent for the bottom edge loop of the central column.


See this example .blend to explore it yourself :)