I think the problem with monitoring of "activity" is that you are looking for the proverbial needle-in-haystack. There are tools that will log all activity, but I'm not sure how you would analyse it. Other folk here will have suggestions, but personally I don't do it that way so I'm no help in terms of how you might do that with something that is as-is but which you want to monitor.
We use Audit tables. So for, for example, a table of Customers with have an AuditCustomers table. All the same columns, plus a column for Date/Time and whether the row was updated or delete. We don't store the current row (that's in the table itself), we store the "previous" row when it is changed/deleted.
All our tables have columns for Create/Update Date and UserID, so the Audit table provides a history of who-did-what-and-when.
We delete rows from Audit tables based on date, which may vary table-to-table. When we purge stale rows we retain one row older than the cutoff - so instead of being able to say "This row has not changed in the last 3 months" (which, IME, tends to the question "Are we sure") we can say "This row has not changed in the last 3 months, and the previous change before that was on dd-Mmm-yyyy hh:mm"
Mostly we use this to detect software issues, or accidental human error, but I have been asked to review historical data for fraud too.
Anyone with DBA access to the database can massage the data however they like, so if you have concerns for those employees something more sophisticated would be required.
Obviously "my way" requires that the software is built with this in mind, but the way this is done is using TRIGGERS. A SQL Trigger fires when a row in a table is Inserts, Updated or Deleted, so it would be possible to add triggers to an existing system in order to capture changes to data, even if the system was not designed for that functionality. (There may be some performance considerations, but IME what we do, which logs a HUGE amount of information, is not apparent to users in terms of slow-down)
We also log all Stored Procedures. So if User-A does a Customer Modification, that executes our CustomerSave Stored Procedure. That, in turn, logs that it was called from Session-123 (which in turn translates to User-A), and all the Parameters passed to CustomerSave. That log tells us exactly what the user was doing, what values were involved, and so on. Again, we mostly use that to diagnose software bugs and user training issues, along with "What processes are too slow", but in terms of reverse-engineering what someone did, fraudulently, it gives a very clear view. I can't see that being retro-fitted to an existing system. There are tools (e.g. SQL Profiler) which will record that information, in real time, but I've ad trouble trying to use that to get the same level of detail that we log - e.g. what did one particular person do, and the flow of control and data from parent-procedure to child-procedure calls