Typically database rules are executed after an item is saved and closed. UI rules can be triggered to occur while the item is still being displayed based on certain actions or criteria. The difference is based on the timing when each are executed.
And never forget that in a lot of cases the user SEES the UI rule change a field and can over-ride what it does! This is fine if that is what you want but not good if your business process relies on the value.
Also UI rules will NOT fire if someone does UPDATE ALL or uses a web interface. So quite often you find that a DB rule is needed to back up a UI rule!