Depending on your needs, you may want to experiment with approximate techniques. For details, checkout Arya and Mount's work on the subject. A key paper is here. BigO complexity details are located in their '98 paper.
I have used their library on very high dimensional datasets with hundreds of thousands of elements. It's faster than anything else I found. The library handles both exact and approximate searches. The package contains some CLI utilities that you can use to easily experiment with your dataset; and even visualize the kd-tree ( see above ).
FWIW: I used the R Bindings.
From ANN's manual:
...it has been shown by Arya and Mount
[AM93b] and Arya, et al. [AMN+98] that
if the user is willing to tolerate a
small amount of error in the search
(returning a point that may not be the
nearest neighbor, but is not
significantly further away from the
query point than the true nearest
neighbor) then it is possible to
achieve significant improvements in
run- ning time. ANN is a system for
answering nearest neighbor queries
both exactly and approximately.