Every wallet that has been programmed to accept it can. There are some that won't for example, wallets that might not currently be in development for obvious reasons like multibit.
Every wallet can receive from bech32. Legacy wallets will receive at "1" (or "3") addresses, but the payer can have their funds in a bech32 address. In other words, funds formerly in a bech32 address can be received by any wallet. When paying a merchant using legacy addresses, you can still pay them even if your funds are in a bech32 address. The blockchain will record a transaction with a bech32 input, and a legacy output. The merchant's legacy software will be able to collect the legacy output.
Expanding on my previous statement: If you use the Trezor or Ledger with Electrum, then yes, you can send bitcoins to a "bc1" address. Presently, released versions of Trezor and Electrum (and presumably Ledger) limit users to "3" SegWit addresses. However, because Electrum supports sending to bech32, it can send from an "3" address to a "bc1" address.
Edit:
Decided to double check the Electrum + Trezor/Ledger combination for sends. https://en.bitcoin.it/wiki/Bech32_adoption confirms this ability. (But it also claims that these combinations can receive at "bc1" addresses...)
I'm not sure that's accurate for every wallet but it'll certainly help a few. Normally, due to the decentralization of bitcoin, every wallet has to validate the transaction input and the output and gajn a TX hash from the validation process. If the TX hash is different for bech32 (which is probably the case as they're much smaller transaction sizes) then some nodes will reject them.
Though ledger and trezor will support receiving from them as you state so that is correct and the original point of this thread...