A block entity (previously named tile entity) is extra data associated with a block, beyond the block ID and 4 bits of so-called metadata that every block has (as described in the data values article). In addition, block entities are able to perform an action each tick. Block entities are detailed in the chunk format page. Block entities are not movable by pistons.
Chests, Trapped Chests, Dispensers, Furnaces, Brewing Stands, Hoppers, and Droppers to store their contents. Furnaces also store the time until the current item is smelted, and the time until the furnace's current fuel item is exhausted. Brewing Stands also store the brewing time. Hoppers also store the time until the next transfer of an item. Chests and Trapped Chests also use the block's position for the opening and closing animation.
Beacons, to store the pyramid level and the active effects. Also uses the block's position for the beacon beam.
Monster Spawners, to store which mob will be spawned, additional data about the entity to be spawned (such as position, effects, and entities stacked on top of it), the time until the next mob is spawned, the min and max values for the next spawn delay, and how many mobs to spawn per spawn attempt. Also uses the block's position to display the spinning mob inside.