Let's start with some definitions:
Vector: A list of values that are all contained under the same "roof" so to speak. For instance, the location of an object in 3D space is a vector of 3 values (the X, Y and Z location of that object).
All Vectors in blender are by definition lists of 3 values, since that's the most common and useful type in a 3D program, but in math a vector can have any number of values.
Dot Product: The dot product of two vectors is the sum of multiplications of each pair of corresponding elements from both vectors. Example:
V1 = (1,2,5)
V2 = (2,1,3)
dotProduct = V1.x * V2.x + V1.y * V2.y + V1.z * V2.z
= 1 * 2 + 2 * 1 + 5 * 3
= 2 + 2 + 15 = 19
The particle velocity example:
In your original question, we see a dot product of the particle velocity with itself. The velocity is an XYZ vector since it has components in all 3 axes.
In a smoke or fire simulation, some particles are going right (positive X), some left (negative X), some forward (positive Y), some backward (negative Y), but almost all are going up (positive Z). The velocity data reflects this. If a particle is going straight up, its velocity will be, for instance,
(0,0,1). If it's going left, forward and up, its velocity can be something like
When you calculate a dot product of the velocity with itself, you cancel out the negative values (negative values multiplied with themselves become positive), so this is a quick way to convert the velocity gradient over all particles from a 3D XYZ gradient to a mostly 2D gradient along the Z axis.
And now the velocity's dot product with itself:
Another Example: Parametric Geometry Input Node:
The Cycles Input --> Geometry node's Parametric option that's used here, generates a Vector (RGB) value for each point on the object's surface (image above). Each color channel's at each point has a value between 0 and 1.
If you calculate the sum of each point's RGB values (R+G+B), you'll get a single (scalar) value (top image in the figure below) that ranges between 0 (R=0,G=0,B=0) and 3 (R=1,G=1,B=1).
This is the same as the dot product of each RGB value and a Vector of (1,1,1) (2nd Image in the figure below).
And eventually, if you calculate the dot product of the parametric RGB with itself, you essentially multiply each color with itself (R*R + B*B + G*G) in each surface point (3rd Image in the figure above).
In this case it darkens the image significantly, because any value below 1 that's multiplied with itself produced a smaller number/value.