The output of
# echo $(ls)
are the same. What exactly does the $ sign and the parenthesis mean?
Also, what is going on a technical level that causes the output of these two commands to be the same?
This is command substitution for bash.
And a good example similar to your question:
() and $() are used to run commands in a subshell
See http://tldp.org/LDP/abs/html/subshells.html for details
Using $ in front of a variable name invokes the value assigned to the variable. Echo without the $ will just print the name of the variable to the screen (or standard out).