As I understand the game engine allows programmers to construct the game world and everthing in it by entering code. The game engine is the core software component that provides all of the underlying technologies necessary for creating a video game and therefore simplifies the process of game development. The game engine has the ability to render 2d and 3d objects and also gives functionality for collision detection, sound, artificial intellgence, animation, scripting, physics, networking and a scene graph.

There are different types of game engines, each having their own strenghts and weaknesses. The Unreal Engine 3 seems to be an effective engine to use when developing games for the Xbox 360 and Playstation 3. It has a number of advanced tools used for realistic lighting and impressive character models demonstrated recently in Gears Of War, which in my opinion looked ridiculously good, so good that the graphics were actually kind of distracting. It also has support from major publishers such as Sony, Electronic Arts and Square Enix.
Usually developers will use an existing game engine, but it is up to the developer to decide what type of game engine would work best for the game that they are developing. However they may decide to build their own game engine in-house, this could be because there may not be an existing engine that meets the technical requirements of the game they are developing. This is an expensve option though and many developers will decide to use existing 'proprietary' game engines because of time and money constraints.