Address that start with EQ are bounceable addresses, and those that start with UQ are non-bounceable addresses. These are only a hint to the wallet software that you want the sent message to be able to bounce or not.
When an error occurs in the target smart contract, usually a bounced message will return to the sender. In some cases you don't want the error message to be generated and also you don't want the transferred TON to be returned.
One such case is when you want to deploy a smart contract to a new address. In this case you want to send some TON to the target address, before anything is deployed there, and you want the funds to remain there, so that later you can deploy the actual code. In this case you have to use non-bounceable addresses.
Today, most wallets handle this automatically, and you can forget about the differences.