In essence they are similar when you first look at them.
Ring groups can have paging. Queues can queue.
Queues can also have intro prompts and queues can announce the position to the caller.
Ring groups are always on (ie an extension is always logged into the group) but queues allow an extension to be logged out (except it is still an all or nothing - log in to all queues you are a member of or none - but hope that changes in the future).
The main difference is behind the scenes.
When a call comes into a ring group it rings the phones in the group as per the call hunt setup. But if a phone is busy then that phone is temporary out of the group. When all phones in the group are busy then the ring group will no longer "hold" the calls and will follow the instructions set up in the ring group for when the phones are busy/not answered.
A queue however will keep the caller in the queue even if ALL phones in the queue are busy. The queue will only move on when the queue timeout (at the bottom, as opposed to the ring timeout at the top) is reached or there are no extensions logged in.
So if you want to keep your callers in the queue while you finish your other calls then use a queue. If you want them to go to voicemail or a DA then use a ring group.
There are a few more things such as music on hold etc for queue too but the big one is how calls are handled once all extensions are busy. Or if people need to log in and out.