Disclaimer: I work for the company that produces these products.
If your application is .NET or Java then you can use Runtime Intelligence from PreEmptive Solutions to automatically inject usage tracking into your applications. The way this works is that on the .NET side Dotfuscator is used to process your assemblies after they are compiled and can be configured to inject the usage tracking on the methods that you define (either via custom attributes in your code or through the Dotfuscator GUI). For Java applications the approach is similar although it uses DashO as the injection platform.
Once your application is processed then whenever a user runs it in the wild it will send back usage information over http(s) to a server where the data is collected, summarized and reported on. You also have the ability to provide your user with an opt in so that they can agree to having their usage data aggregated.
All of the professional level products have free evaluations so you can try them out with no risk.
Also, if your budget is $0 and your application is .NET 2.0 or higher then you can use the free version of Dotfuscator in Visual Studio 2010. This will provide you with a more limited set of analytics features but you still can monitor application start/stop as well as up to 10 named features (methods). By default the data is sent to a free community portal with no service levels and no guarantee of privacy. PreEmptive also provides an open source basic WCF based endpoint and database starter on Codeplex here so that you can host the storage and reporting of your applications usage data yourself. Any version of Dotfuscator, including the free one in Visual Studio 2010 will allow you to specify a custom URL for the usage data.