As long as the following rules are met it should be as easy as Copy/Paste.
R1 - Both armatures to be merged are simple - no bone constraints or drivers
R2 - Do not merge armatures that have rotation and scale - clear those transformations to be safe.
R3 - The names of the bones in each armature should not be the same in order to avoid bone renaming during the joining operation. Use Batch Rename (Ctrl+F2) to add some uniqueness in the bone names - say starting with different letter in each armature will do.
Let's say you have armatures A and B and you merge B to A.
You will loose all animation data from the animated bones in B.
In the merged armature select only the bones previously belonging to B and add keyframes to all of them on frame 1. Make sure to add as many channels as needed (say LocRotScale)
Then go to armature B, select all bones and select all keyframes in the Action Editor, then Copy (Ctrl+C).
Lastly, back in the merged armature, with still selected bones from B - Paste (Ctrl+V), again in Action Editor (while still on frame 1).
This should work on fairly complex armatures and I suggest to practice on simple armature merging first to get the hang of it.
The problem still remains for more complicated armatures that introduce Bone constraints and Drivers. And I think the best approach in this case is via Python scripting