What I remember from using Gemini is that it didn't have any way to group components under a version, and that's really a problem sometimes.
For example, LLBLGen Pro is build up from various different subsystems, or components if you'd like. Together, these form 'LLBLGen Pro' and that package has a version, for example 1.0.2004.2.
It can be some subsystems grow faster than others. Internally, in the development team, you'd like to keep track of the versions of the subsystems, but ALSO in which version of the PACKAGE they're shipped in. Not just a 'component' is released, it's part of a package.
I missed that, if I remember correctly. Bugtracker.NET is so simple it has 'projects' and inside a project a 'category'. I use categories for versioned subsystems, which works fairly well. I first had my doubts, but it turned out ok. I looked at a free system because I had the plan to open the bugtracking system to the customers, though I couldn't find a free version which was OK and above all: secure. All commercial ones want license fees for users of the system, which makes it unusable to open it up to a lot of users.
Though after a while you get accustomed to what you're using, and you see that they simply work, even though ToDoList is very simple and Bugtracker.NET is too. Of course, you have to do the manual linking between bugtracker.NET and subversion (add the bugnumber to the comment in subversion when committing) but it gets part of normal life. In a larger team, I think I would opt for different tools, as you there have to pass on bugs to other people etc.