You need to look, at a minimum, at the following stats that SQL captures:
missing index stats -- from views sys.dm_db_missing_index_*
index usage stats -- sys.dm_db_index_usage_stats
index operational stats -- sys.dm_db_index_operational_stats
Since these stats get lost/reset when SQL restarts, it's best if the server has been running continuously for at least 30 days prior to analyzing the stats.
By far the most critical thing is to get the best clustered index on every table. After that, you can deal with nonclustered index(es), if any. Note: an identity column is most often NOT the best clustered index on a majority of tables. Yes, seriously, for best performance, it is NOT identity clustering for a majority of tables.
The analysis is not "tricky" but it does involve judgment -- you will often have to make your own choices regarding the best compromises to make for creating and modifying indexes.