Data Guard is Oracle's database replication product used for creating and maintaining "standby" disaster recovery databases. This is done by leveraging Oracle arhived redo logs generated when the database is in archive mode. The archived redo logs from the primary database are periodically sent to a read-only standby database that applies each archived redo log to itself each time ones comes over. Standby databases come in 2 varieties: Physical and Logical. A physical standby database is identical block for block to the primary database, hense the standby system will need to be designed effectively identical to the primary database. A logical standby database can be very diffrent in design to the primary database so long as it has suffient resources to contain the primaries data. In the case of a physical standby archived redo logs can be directly applied to the standby database whereas the archived redo logs when applied to a logical standby need to be ripped apart into SQL statements and applied one by one. The options allow for a flexable architecture based on your enviroments avalible resources.
The standby database sits idle most of the time in read-only mode accepting archive redo logs from the primary. This makes the standby system idea for running reports and intensive queries. If the primary database fails for some reason, the standby can simply be restarted in read-write mode and used untill the primary comes back online.
For small organizations where complex architectures for RAC and data warehousing aren't practical a standby database using Data Guard can fill a variety of needs all at one time.
A brief aside, I'll note that some companies actually use RMAN as a replication scheme by immediately recovering a backup to a "standby" system and using it for reports and read-only access just as if they were using Data Guard. The advantage of RMAN over Data Guard for replication is that you always are testing the validity of your backup system. The downside to using RMAN is that it's not at all effectient and you typically don't run RMAN backups more than once a day making it a poor HA solution by itself. There are a variety of opinions on this practice but just know that it isn't unheard of.
For more information about Flashback check out the book Oracle Database 10g High Availability with RAC, Flashback and Dataguard and the Oracle Data Guard Concepts and Administration manual: