How can people do double spending?
A real double spend,
where more than one transaction using the same previously unspent output as an input are all confirmed in the blockchain, is completely impossible. The revolutionary thing about bitcoin was that it found a decentralized way to make a real double spend impossible.
Most people around here mean something different when they use the phrase "double spend". As a matter of slang, many people will use the words "double spend" to describe a situation where a transaction is confirmed in the blockchain which has at least 1 input that has been seen in some other
unconfirmed transaction at some time in the past. That other transaction will never confirm and is considered invalid by the network.
What wallets is possible to do that?
With the right circumstances and expertise the second definition can be accomplished with ANY wallet. It can be easier with some wallets than others.