In my opinion JMS and other message-based systems are intended to solve problems that need:
- Asynchronous communications : An application need to notify another that an event has occurred with no need to wait for a response.
- Reliability . Ensure once-and-only-once message delivery. With your DB approach you have to "reinvent the wheel", specially if you have several clients reading the messages.
- Loose coupling . Not all systems can communicate using a database. So JMS is pretty good to be used in heterogeneous environments with decoupled systems that can communicate over system boundaries.