Also, you shouldn't transform every vertex every frame on the CPU. Instead use a vertex shader. The GPU is optimized to transform your vertices. Simply upload a transformation matrix to the graphics card and let a vertex shader deal with the transformation.
If you actually want to transform each vertex in a different way, updating your vertex buffer every frame is the way to go.
As stated earlier, you should make use of the world matrix (or equivalent) to transform your mesh to different position. Especially, if the vertices stay at the same position in relation to the other vertices, changing the world matrix is the way to go.
Dynamic vertex buffers are usable for meshes which change their form somehow, particle systems, transferring instance data etc.
Even a bit more complex deformations such as skinned meshes are typically static in the sense that the vertex data doesn't change and they can be stored in a static vertex buffer.