While your requirements are not very clear, here are some points you need to consider:
1-XML has no indexing mechanism, if you want to search by several criteria or join different data you can't
2-XML data is mainly plain text, it can be tampered with easier than a database
3-XML does not provide aggregate functions like SQL - So you will need to code aggregate functions, etc.
4-XML has no concurrency management, you work with a file not a row
5-User security and user rights need to be secured - This is usually handled via database or Windows integrated security
6-Most report generators require a data source that is either csv or a database (of course you can build a datatable or similar using XML and pass that to the report generator as an object, this depends on your selected tool)
7-Databases offer simple and generally quick backup.
8-You can add/remove columns from database with relative ease
9-Database offer consistency checks and constraints as well as transcriptional processing allowing you to rollback in case of errors.
10-Databases offer stored procedure that allows you to encapsulation server logic within them
11-Using a database, you can allow your user to enter dynamic sql queries instead of programming every possible report
As "Demian Brecht" suggested, you can use SQLLite, MySQL, SqlServer/SqlServer Express, SybaseAnyWhere, and the new "SQL Server Denali". This link may also help you:
XML vs SQL for small projects?