Have a look at spplot. Here is a short example using population density data from Haiti. I like to use Colorbrewer for creating color palettes suitable for maps, but there surely exist a lot of other possibilities to create sequential color scales in R.
# Required packages
library(rgdal)
library(RColorBrewer)
# Import shapefile
shp <- readOGR(dsn = "/path/to/data", layer = "Haiti_ADM3_stats")
# Color palette
my.colors <- brewer.pal(9, "Reds")
# Plot population density
spplot(shp, "POP_DENS", col.regions = my.colors, cuts = 8,
scales = list(draw = T))

Update:
Indeed, spplot takes some time to generate the graph. If you are looking for a more convenient way to plot your data as concerns speed, I would suggest to have a look at the ggplot package. Note that the following code is strongly influenced by this wordpress post on speeding up map plotting in R.
# Required package
library(ggplot2)
# Extract polygon corners and merge with shapefile data
shp@data$id <- rownames(shp@data)
shp.ff <- fortify(shp)
shp.df <- merge(shp@data, shp.ff, by = "id", all.y = T)
# Plot population density
ggplot() +
geom_polygon(data = shp.df, aes(x = long, y = lat, group = group,
fill = POP_DENS), color = "black") +
scale_fill_gradient(name = "Population density \n (inhabitants / km²)",
low = my.colors[1], high = my.colors[9]) +
labs(x = "Lon", y = "Lat") +
theme_bw()

ssplotfunction is extremely slow in composing the plot with 8000 features... – Francesco Nov 23 '13 at 22:10