Flower

Flowers are naturally occurring plants that spawn randomly in clusters on grass blocks. While they can be planted on grass, farmland, and dirt blocks, flowers cannot be cultivated like trees, sugar cane, or crops, but can occasionally spawn when bone meal is used to generate patches of tall grass. Flowers can be used to make wool dyes.

To survive, flowers must be planted on a grass or dirt block that either does not have a block any altitude above it to obstruct sun/moonlight, or is lit with at least a light level of 8. If neither of these conditions exist, the flower will quickly pop out. This attribute allows flowers to be used in the creation of light-sensitive mechanisms.

Even in a biome covered with snow, flowers will generate naturally on dirt blocks with grass, despite the adjoining dirt blocks being covered with snow.

Farming
To farm flowers you need to apply bone meal on a grass block, that either does not have any block above it to obstruct sun/moonlight, or is lit with at least a light level of 8. Flowers and tall grass will spread over grass blocks up to five blocks radius around.

If the planting conditions are not met, the flowers will quickly pop out. This attribute allows flowers to be used in the creation of light-sensitive mechanisms.

Dandelion
Dandelion flowers can be collected in one hit and placed in a crafting grid to create 2 units of dandelion yellow dye.

Rose
Roses can be collected in one hit and placed in a crafting grid to create 2 units of rose red dye. They are somewhat rarer than yellow flowers; usually being alone or in groups of 3-4. They are also held and dropped by Iron Golems, except in Minecraft PE.

Cyan Flower
Cyan Flowers or Roses replace red Roses in Pocket Edition.

In a video preview of Pocket Edition on the Xperia PLAY, a cyan flower is visible at 0:25. Jeb stated that they exist as replacement for Roses, following some hardware problems; cyan colored flowers are not planned to be added in the PC version of Minecraft. It is impossible to obtain Cyan Flowers without the use of external mods. Since the 0.5.0 update of Minecraft Pocket Edition , they are named Rose in the inventory.

They serve absolutely no function but decoration, unlike dandelions which, indeed, provide yellow dye. They are also available on the Pi Edition.

Trivia

 * On SMP, placing a flower on a stone block with a layer of snow on top would result in the flower being planted normally.
 * Due to the nature of the flowers' spawning algorithm, it is possible (but relatively rare) to find naturally-spawned flowers in lava, caverns or abandoned mine shafts.
 * Like torches, flowers convert falling objects like sand or gravel into their collectible item entity.