You mean Vertexbuffers versus ID3DXSprite?

Well, i have to admit that i don't have experience with ID3DXSprite. I always render my geometry using vertexbuffers, because i can make it more abstract and reuse code for 3d purposes which ID3DXSprite can't handle.

I guess both are good options. Doing it using vertexbuffers takes some extra work, and problems might occur. But you can use the same code for rendering 3d things, and you have much control over the rendering process. I think that ID3DXSprite gives you enough flexibility to make a GUI, but i can't help you with it.