A chessengine is a program that plays chess: it analyses chess positions and calculates moves . Chessmaster is a package that has a chess engine (The King), and that's what's making the moves when you play against chessmaster. Likewise, Fritz has an engine (which is, confusingly enough, called Fritz too).
Another kind of program used for chess is a database. This is a tool to manage and browse through collection of chessgames. For example, it is possible to search a collection of games for games by a certain player, or for a certain position or opening. Most databases allow you to load up a chess engine to analyse certain positions.
That's is why, in correspondence chess, it is allowed to use databases (which give you an idea how a particular opening can be played and what kind of middlegame it leads to), but not to use chess engines (which calculates a move for you).
I hope this makes it somewhat clearer,
David
David already gave a good explanation, so I'll answer the second part of your question - are they useful? Or perhaps you ment to ask what are they useful for?
A Good (and allowed) way of using chess engines is to have a chess engine analyze your game after you've finished it. It will go through your game move by move and point out where you went wrong, and suggest alternative moves.
Another use for chess engines is to play against them - in all modern chess engines (at least as far as I know) you can set the level at which the engine plays, so with a chess engine at your disposal, you've always got an equally matched opponent to play against. So chess engines can be used for practice in this way also.
I don't have Fritz so other's will have to comment on that, but Chessmaster at least also has a "classroom" section with chess education at levels from beginner to advanced. I can gladly recommend those sections, they've helped me a lot.
-Jarno