Stm32 Event and interrupts
Sometimes finding the answer to these questions for an ARM device can be more difficult than simpler microcontrollers because the information is often spread across family and programming guides rather than included in the datasheet. In this case the answer appears to be on page 381 of the RM0090 Reference manual:
The STM32F4xx are able to handle external or internal events in order to wake up the core (WFE). The wakeup event can be generated either by:
(I've removed normal external interrupt mode details)
or configuring an external or internal EXTI line in event mode. When the CPU resumes from WFE, it is not necessary to clear the peripheral interrupt pending bit or the NVIC IRQ channel pending bit as the pending bit corresponding to the event line is not set.
So it appears the main purpose is to enable wakeups without generating an interrupt or having to respond to interrupts during normal operation.
It's not mentioned in that guide and I'm not sure how applicable is to the STM32 architecture but on some other devices similar schemes can be useful to catch fast events without generating an interrupt. For example you may have an application where it's important to capture that a sub-microsecond event has occurred, but there's no need to respond to it quickly so you can just check a flag to see if it's occurred.
Edit: (5/2018) As of today, page number of referenced text is page 381 (formerly page 377)
Why do we then use Events on stm32 if you can't execute some code when they happens?
Interrupts will typically be used to execute a few lines of code by the ARM core (NVIC, interrupt handlers, etc.).
Events don't necessary execute code but can signal another peripheral to do something without processor intervention. For example, a periodic timer can generate an event to tell an ADC to sample and then write the measured value to memory using DMA without ever waking up the ARM core processor (no code executed...in theory).
So interrupts involve code execution. Events don't necessarily require code execution.