You've got a small learning curve ahead of you:
A command line / command prompt is simply one way that programs present themselves to the user; via a CLI (command line interface). The other way is through a GUI (graphical user interface). Many programs have both kinds: you can choose which to use, graphical or command-line. It's a matter of taste. An example which offers both options is "zip". On Windows, there's the Winzip GUI as well as the zip CLI.
A shell is a particular kind of command line program: It's the "desktop" of the command line. It runs the command line and makes it all happen. It responds to what you, the user do (ie. type). On Unix, bash is the most popular shell. On Windows it's... cmd.exe? I'm not sure. Not my area of expertise.
A terminal is a bridge between the GUI and CLI worlds: it's a GUI program that starts a shell and lets you use CLI apps within its graphical window. Now, on OS X, the terminal program provided by Apple happens to be called Terminal, but that's a fluke. On Windows it's... Console, I think? There are many other terminal apps out there; xterm, etc. So, when you take your mouse and click the terminal icon, the computer launches two programs for you: the terminal (Terminal on a Mac), and the shell (bash, usually).
(Finally, you ask about ssh and telnet. You should always, always use ssh. Really, always. If anyone tells you not to and says not to worry, etc., you should demote your opinion of them.)
Both ssh and telnet are two command-line programs that make a network connection to another computer, and give you the command-line on that computer. So they can seem identical.
Telnet, though, is really just a network debugging tool. Anyone can eavesdrop on your telnet connection and see everything you're doing. Ssh, on the other hand, works like you'd expect. You connect to some other computer, and your communication over the network stays private.