Back in the old days, when AT&T invented UNIX, there was Bourne Shell, written by Steve Bourne. It was pretty basic, and lacked a lot of tools we take for granted nowadays.
AT&T wasn't really in the UNIX business, so at this time the very basic OS was adopted somewhat by Berkelely, and they made some changes into BSD UNIX. Among many changes, was a new shell, called csh, which had a lot of improvements over sh, including job control better interactive use and so on. Unfortunately, they decided the sh programming syntax sucked and created their own, (somewhat badly) copied from C coding styles. (A classic rant is http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/) So now there were two syntaxes.
Later, they made improvements to CSH adding tab completion and some other things. This became tcsh, and if you use CSH, this is probably the one you use.
AT&T decided it wasn't totally out of the UNIX business, and they polished it up too. David Korn (nice guy) created the Korn shell. Based on the idea of extending Bourne shell syntax, it added a lot of things for both programmers and interactive use. There are actually a few versions, and you may rarely see things like ksh88 and ksh93, denoting the variants.
Then came FSF and the GNU OS. They wanted to make their own UNIX-compatible OS named the Hurd, and wanted a better shell for it. They called bash, for Bourne Again SHell. POSIX rules came in just around this time, and they wanted to make the POSIX shell. They looked around, taking the syntax from Bourne shell and the improvements from Korn shell, plus stealing and extending the interactive features from tcsh. It became the de facto shell on Linux, so it's very common.
There's also the zsh, written to be the 'ultimate' shell. It's also very common in the Linux world. It extended bash (and cross pollinated a bit, some new things went back to bash).
If i were to pick a shell, I'd pick bash or zsh. bash is possibly in a few more places than zsh. zsh is more powerful, but bash has been fine for me.
Real /bin/sh Bourne shell is around just for historical reasons. bash has pretty much all that ksh has to offer and more. The syntax is cleaner than csh or tcsh, and has better features than either one of them.
To convert a script depends on from what to what. Bourne shell style (sh, ksh, bash, zsh) to or from csh style (csh, tcsh) will be hard. Going from old to newer (/bin/sh => bash, /bin/ksh => zsh) will be easier than the other way.