engine - an implementation of a chess-playing algorithm, in itself mostly a console application, requiring a GUI program (sometimes bundled, but mostly separate) to interact with; examples: Stockfish, Houdini, Rybka, Critter, Comodo
GUI - graphical user interface, software providing a graphical interface which allows the user to interact with a chess engine (by displaying a board with chessmen, a move list, etc.), as well as often offering other functionality, such as limited database handling capabilities; examples: Arena, Winboard, Tarrasch, Lucas Chess
chess program - a combination of a GUI and a specific engine in one package, mostly commercial; examples: Fritz, Chessmaster (featuring The King engine), Shredder
database program - a more specialized type of a GUI, focused on extensive functionality allowing the handling of large databases of games; examples: Chessbase, Chess Assistant, Scid (and forks such as Scid vs PC, ChessX, Scidb)
)

I would appreciate it if everyone could give me their info on the various programs available and the major differnces in them as per use. Thanks.